我想点击我的扩展程序的浏览器操作,然后在滚动之前加载iframe。
window.addeventlistener("load", scroll, false);
现在似乎是个问题。
我知道内容脚本会使window.addEventListener工作,但内容脚本也会一直注入脚本,我只想在点击浏览器操作图标时滚动。
我也知道删除window.addeventlistener("load", scroll, false);
可以使滚动工作,但那样就不会等到iframe加载了。请帮忙。
的manifest.json
{
"manifest_version": 2,
"name": "scroll",
"description": "scroll",
"version": "1.0",
"browser_action": {
"default_icon": {
}
},
"background": {
"scripts" : ["background.js"],
"persistent" : false
},
"permissions": [
"tabs", "<all_urls>"
]
}
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: "scroll.js"});
});
scroll.js
window.addEventListener("load", scroll, false);
function scroll (evt) {
window.scrollTo(0, 800);
}
答案 0 :(得分:0)
可能会发生代码执行太晚(load
事件之后)。
逻辑应该是:
document.readyState
履行职责:
function scroll(evt) {
window.scrollTo(0, 800);
}
if (document.readyState === "complete") {
scroll();
} else {
window.addEventListener("load", scroll, false);
}