gpt4 book ai didi

javascript - BrowserAction.onClicked 等待 iframe 加载

转载 作者:行者123 更新时间:2023-12-03 07:02:11 27 4
gpt4 key购买 nike

我想单击扩展程序的浏览器操作,然后在滚动之前加载 iframe。window.addeventlistener("load",scroll, false); 似乎是现在的问题。

我知道内容脚本将使 window.addEventListener 工作,但是内容脚本也会一直注入(inject)脚本,并且我只想在单击浏览器操作图标时滚动。

我还知道删除 window.addeventlistener("load",scroll, false); 可以使滚动正常工作,但不会等到 iframe 加载。请帮忙。

ma​​nifest.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>"
]
}

背景.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);
}

最佳答案

您的代码可能执行得太晚(在 load 事件之后)。

逻辑应该是:

  • 检查页面是否已加载
    • 如果是,立即执行
    • 否则,附加一个监听器

document.readyState履行 Angular 色:

function scroll(evt) {
window.scrollTo(0, 800);
}

if (document.readyState === "complete") {
scroll();
} else {
window.addEventListener("load", scroll, false);
}

关于javascript - BrowserAction.onClicked 等待 iframe 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36993995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com