在火狐和Safari中,我设法用window.addEventListener('DOMContentLoaded',PageShowHandler (False)注册了DOMContentLoaded事件;通过将该语句插入到js脚本(或者更清楚地说,在加载页面的dom之后执行),我的特定函数成功地在加载这个特定页面的DOM时运行。
我似乎不能在Chrome上这么做。我对chrome.tabs.onUpdated等事件做了一些戏法,但它并不是在每个实例中都有效;所有这些事件都不能达到DOMContentLoaded实现的目的。例如,当我点击网页上的特定链接时,这不会像我的DOMContentLoaded事件那样注入我的代码。
window.addEventListener('DOMContentLoaded', PageShowHandler, false);引入inject.js似乎没有注册该事件。
这是清单:
{
"name" : "gMail Adder ",
"version" : "1.0",
"description" : "Google Chrome Gmail Adder",
"options_page": "options.html",
"background_page": "background.html",
"run_at": "document_start",
"permissions": [
"tabs",
"history",
"http://*/*",
"https://*/*"
],
"content_scripts": [
{
"matches": ["*://*.google.mail.com/*", "https://*.google.mail.com/*" ,"http://mail.google.com/*" ,"https://mail.google.com/*", "https://www.google.com/*", "http://www.google.com/*", "file:///*"],
"css": ["toggle.css"],
"js": ["jquery-1.4.4.min.js", "inject.js"]
}
],
"browser_action" : {
"default_icon" : "Quest Icon 11.png",
"default_popup": "popup.html"
}
}发布于 2011-02-22 18:35:06
如果将"run_at":"document_start"标志添加到清单中的内容脚本中,则在构造DOM之前会注入它们,因此每次都应该触发DOMContentLoaded:
"content_scripts": [
{
"matches": ["*://*.google.mail.com/*", "https://*.google.mail.com/*" ,"http://mail.google.com/*" ,"https://mail.google.com/*", "https://www.google.com/*", "http://www.google.com/*", "file:///*"],
"css": ["toggle.css"],
"js": ["jquery-1.4.4.min.js", "inject.js"],
"run_at": "document_start"
}
],(有关执行命令这里的更多信息)
发布于 2011-02-23 15:26:53
我在注入的脚本中使用了DOMFocusIn事件,从而成功地完成了任务。此事件正确地模拟了DOMContentLoaded在火狐和Safari中实现的触发行为。
window.addEventListener('DOMFocusIn', PageShowHandler, false);如果我没有设置为"contents_scripts":中的true "all_frames"字段,这将无法正常工作。
{
"name" : "gMail Adder ",
"version" : "1.0",
"description" : "Google Chrome Gmail Adder",
"options_page": "options.html",
"background_page": "background.html",
"run_at": "document_start",
"permissions": [
"tabs",
"history",
"http://*/*",
"https://*/*"
],
"content_scripts": [
{
"matches": ["*://*.google.mail.com/*", "https://*.google.mail.com/*" ,"http://mail.google.com/*" ,"https://mail.google.com/*", "https://www.google.com/*", "http://www.google.com/*", "file:///*"],
"css": ["toggle.css"],
"js": ["jquery-1.4.4.min.js", "inject.js"],
"all_frames" : true
}
],
"browser_action" : {
"default_icon" : "Quest Icon 11.png",
"default_popup": "dialog.html"
}
}https://stackoverflow.com/questions/5082094
复制相似问题