Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery 1.11未从清单加载_Javascript_Google Chrome Extension_Google Chrome Devtools - Fatal编程技术网

Javascript JQuery 1.11未从清单加载

Javascript JQuery 1.11未从清单加载,javascript,google-chrome-extension,google-chrome-devtools,Javascript,Google Chrome Extension,Google Chrome Devtools,我刚开始玩Chrome扩展,尝试从清单文件加载JQuery,并测试它是否已加载。它没有加载,尽管我在内容脚本中指定了它!知道为什么吗 sample.js if (typeof jQuery != 'undefined') { alert("jQuery library is loaded!"); } manifest.json { "manifest_version": 2, "name": "__MSG_extName__", "version": "0.1",

我刚开始玩Chrome扩展,尝试从清单文件加载JQuery,并测试它是否已加载。它没有加载,尽管我在内容脚本中指定了它!知道为什么吗

sample.js

if (typeof jQuery != 'undefined') {
alert("jQuery library is loaded!");
}
manifest.json

{
    "manifest_version": 2,
    "name": "__MSG_extName__",
    "version": "0.1",
    "default_locale": "en",
    "background": { "scripts": ["sample.js"] },
    "permissions": ["contextMenus"],
    "minimum_chrome_version": "33",
    "content_scripts": [{
        "matches": ["<all_urls>"],
        "css": ["style.css"],
        "js": ["lib/jquery-1.11.0.js"]
    }]
}
{
“清单版本”:2,
“名称”:“\uuuu MSG\uextname\uuuuuuu”,
“版本”:“0.1”,
“默认语言环境”:“en”,
“背景”:{“脚本”:[“sample.js”]},
“权限”:[“上下文菜单”],
“最低chrome版本”:“33”,
“内容脚本”:[{
“匹配项”:[“”],
“css”:[“style.css”],
“js”:[“lib/jquery-1.11.0.js”]
}]
}

使用这种方法将jQuery注入到每个页面

将以下行添加到manifest.json文件中。这将指定打包的资源(扩展名内的jQuery文件)预期在网页上下文中可用

"web_accessible_resources": ["lib/jquery-1.11.0.js"]
将以下代码添加到位于(文件manifest.json)
内容脚本:[{“js”:new\u file.js}]“
中的新文件中,以便在
onLoad
事件触发时实际插入jQuery:

新的_file.js文件:


正如在对问题的评论中所指出的,你在两种不同的环境中做事

“background”
键定义“main”代码所在的单个不可见页面中加载的内容。
“content\u scripts”
将代码注入其他页面,这些页面可以通过Chrome API与后台页面通信

有一个很好的概述

现在还不清楚为什么


您正在将jQuery作为内容脚本注入,但是在后台页面中查找它,这是两个不同的位置。好的。我不知道从哪里链接到JQ:我希望它加载一次(每次加载扩展),但我希望能够在每个页面上使用它。我应该在“后台”和sample.js一起加载它吗?你需要在任何需要的地方加载它。如果我从内容脚本指向我的JQ库,库会在每个页面加载时反复加载吗?是的,它会为每个网页加载。
var s = document.createElement('script');
s.src = chrome.extension.getURL('lib/jquery-1.11.0.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function() {
    s.parentNode.removeChild(s);
};