$(document).ready(...)
中的脚本不起作用,知道为什么吗?
看来我尝试注入(inject)的脚本最后加载了。
这是我的代码:
主要.js
pageMod.PageMod({
include: "*",
contentScriptWhen: 'start',
contentScriptFile: data.url('inject.js')
});
注入(inject).js
var script = document.createElement('script');
script.src = "resource://directoryOfMyAddon/data/jquery/jquery-1.11.0.min.js";
document.getElementsByTagName('head')[0].appendChild(script);
测试.html
<html>
<head>
</head>
<body>
<div id="helloworld"></div>
<script type="text/javascript">
$(document).ready(function(){
$("#helloworld").text("Hello, world!");
});
</script>
</body>
</html>
谢谢哦=)
最佳答案
您可以使用您描述的技术注入(inject) jquery,但取决于 contentScriptWhen
在您的 page-mod
中设置选项你不会看到.ready()
因为只有在 load
之后才会附加内容脚本( contentScriptWhen="end"
(默认))或 DOMContentLoaded
(contentScriptWhen="ready"
)。
你可以使用 contentScriptWhen="start"
,但那时可能还没有一个节点可以附加你的 <script>
标记为。
但是,我要提一下,强烈建议不要(阅读:不会通过 AMO 审查)将 jquery 注入(inject)随机页面,因为这可能会干扰页面可能已经加载的 jquery 版本(或其他任何内容)否则网站分配给 $
)。
相反,如果您的所有代码都驻留在您的内容脚本中会更好。
关于javascript - Firefox 插件 SDK 注入(inject) jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23328849/