我正在尝试使用mozrepl向页面注入额外的脚本。
如果我手动运行这些操作,jQuery将被成功加载,并可在以后使用它
> content.location.url = "..."
> repl.enter(content)
> var s=document.createElement('script')
> s.src='http://code.jquery.com/jquery-1.6.1.min.js'
> document.body.appendChild(s)
> [...more actions using jQuery's $ follow...]现在,我正尝试将所有这些操作放入一个函数中,以便稍后加载到mozrepl中。但它不起作用。看起来这和切换上下文有关,但我不确定。
有没有人能告诉我,哪里出了问题,怎么解决?
发布于 2011-07-17 04:31:40
经过一些试验和阅读XUL文档后,我得出了以下结论:
function on_page(url, func) {
var browser;
var on_page_load = function(aEvent) {
var doc = aEvent.originalTarget;
if (doc.location.href == content.location.href) {
browser.removeEventListener("load", on_page_load, true);
func.call(content);
}
};
var goto_page = function() {
browser = document.getElementById("appcontent"); // browser
browser.addEventListener("load", on_page_load, true);
content.location.href = url;
};
goto_page();
}发布于 2011-07-16 17:33:25
我没有使用mozrepl,但我希望该环境的工作方式与其他用户代理类似。您必须为脚本的下载和执行留出时间,您不能期望它立即出现在DOM中。
当这种情况发生时,函数不会停止执行,并且没有事件可以告诉您何时发生。
https://stackoverflow.com/questions/6716388
复制相似问题