Uncaught SyntaxError: Unexpected identifier within bookmarklet
Uncaught SyntaxError: Unexpected identifier within bookmarklet
我正在尝试将 jquery 注入页面以用于小书签。我在回调的语法上遇到了一些问题,因为我在 运行 时收到以下错误:
未捕获的语法错误:意外的标识符
代码如下。控制台中显示的错误看起来像是发生在我调用 createScript 函数的位置附近。有点难说,因为代码都被弄脏了。当我粘贴到 JSLint 中时,它显示此消息:
应为“;”而是看到 'createScript'.
代码:
(function() {
console.log("Starting....");
var createScript = function (url,callback) {
/* Insert Datatables */
var script_set = document.createElement("script");
script_set.setAttribute("src", url);
script_set.addEventListener("load", callback);
document.body.appendChild(script_set);
}
createScript("https://code.jquery.com/jquery-3.6.0.min.js", function () {
console.log("jquery loaded....");
});
}
)();
更新
我通过对顶部进行以下更改使其正常工作。只是不确定为什么会出错。
工作代码:
(function() {
console.log("Starting....");
function createScript(url, callback) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.async = false;
script.onload = callback;
document.head.appendChild(script);
}
createScript("https://code.jquery.com/jquery-3.6.0.min.js", function () {
console.log("jquery loaded....");
console.log("jquery version = "+ $().jquery);
}
);
}
)();
如果有人知道为什么我在上面的代码中出错,我将不胜感激,以便更好地理解 JavaScript。
当您的小书签被挤成一行时,函数表达式 (var createScript = function (url,callback) {/*...*/}
) 的赋值和标识符 (createScript(/*...*/);
) 的函数调用之间缺少分号会创建非法语法序列.
具有相同可重现错误和固定变体的简短示例:
const func = function (){} console.log(1);
const func = function (){}; console.log(1);
我正在尝试将 jquery 注入页面以用于小书签。我在回调的语法上遇到了一些问题,因为我在 运行 时收到以下错误:
未捕获的语法错误:意外的标识符
代码如下。控制台中显示的错误看起来像是发生在我调用 createScript 函数的位置附近。有点难说,因为代码都被弄脏了。当我粘贴到 JSLint 中时,它显示此消息:
应为“;”而是看到 'createScript'.
代码:
(function() {
console.log("Starting....");
var createScript = function (url,callback) {
/* Insert Datatables */
var script_set = document.createElement("script");
script_set.setAttribute("src", url);
script_set.addEventListener("load", callback);
document.body.appendChild(script_set);
}
createScript("https://code.jquery.com/jquery-3.6.0.min.js", function () {
console.log("jquery loaded....");
});
}
)();
更新
我通过对顶部进行以下更改使其正常工作。只是不确定为什么会出错。
工作代码:
(function() {
console.log("Starting....");
function createScript(url, callback) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.async = false;
script.onload = callback;
document.head.appendChild(script);
}
createScript("https://code.jquery.com/jquery-3.6.0.min.js", function () {
console.log("jquery loaded....");
console.log("jquery version = "+ $().jquery);
}
);
}
)();
如果有人知道为什么我在上面的代码中出错,我将不胜感激,以便更好地理解 JavaScript。
当您的小书签被挤成一行时,函数表达式 (var createScript = function (url,callback) {/*...*/}
) 的赋值和标识符 (createScript(/*...*/);
) 的函数调用之间缺少分号会创建非法语法序列.
具有相同可重现错误和固定变体的简短示例:
const func = function (){} console.log(1);
const func = function (){}; console.log(1);