Fré*_*els 6 javascript jquery google-chrome google-chrome-extension
我正在参与Chrome扩展程序的开发.
在某些时候,我们需要运行一些静态的非生成代码,这些代码必须在页面的上下文中运行而不是在扩展中运行.
对于简单的脚本,使用其中$.getScript(chrome.extension.getURL(....))任何一个都没有问题script = document.createElement('script'); ... document.body.appendChild(script);
对于更复杂的脚本,我们有时需要包含jquery本身或其他一些脚本定义(因为依赖性).
但是在后一种情况下,尽管Javascript被认为是单线程的,但是当运行dependend脚本时,似乎没有完全解析JQuery,导致以下内容
Uncaught ReferenceError: $ is not defined
Run Code Online (Sandbox Code Playgroud)
假设JScript是单线程的,我错了吗?当这些脚本之间存在依赖关系时,在页面中注入脚本的正确方法是什么?(例如,脚本X使用脚本Y中定义的函数)
你可以使用脚本的onload事件....
function addScript(scriptURL, onload) {
var script = document.createElement('script');
script.setAttribute("type", "application/javascript");
script.setAttribute("src", scriptURL);
if (onload) script.onload = onload;
document.documentElement.appendChild(script);
}
function addSecondScript(){
addScript(chrome.extension.getURL("second.js"));
}
addScript(chrome.extension.getURL("jquery-1.7.1.min.js"), addSecondScript);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2023 次 |
| 最近记录: |