打开新选项卡并在新选项卡上执行操作
opening new tab and performing actions on the new tab
扩展脚本:
function newtab() {
chrome.tabs.create({"url":domain,"selected":true}, function(tab) {
//--
});
}
在我的扩展脚本中,我正在打开一个带有某个域的新选项卡。我希望能够检查该新选项卡中的 dom 是否已加载,然后在新选项卡中的 dom 上执行一些操作。
我检查了chrome扩展程序文档,但找不到任何合适的方法来实现它。
请成为我的指路明灯。
内容脚本是扩展中唯一可以访问/修改DOM的部分。
您可以使用所谓的编程注入将内容脚本添加到新打开的选项卡中:
function newtab() {
chrome.tabs.create({"url":domain,"selected":true}, function(tab) {
chrome.tabs.executeScript(tab.id, {file: "content_script.js"});
});
}
.executeScript()
受制于run_at
参数,该参数默认为 document_idle
。这保证了脚本仅在静态 DOM 完全加载后执行。
在动态 DOM 的情况下(页面的脚本在加载静态内容后创建更多 DOM),即使定义"选项卡已加载"状态也是有问题的。聆听 DOM 更改可以帮助您。
几点注意事项:
- 以编程方式注入新页面需要该页面的主机权限。如果您事先不知道域,则需要广泛的权限,例如
"*://*/*"
或"<all_urls>"
。 -
"document_idle"
不保证加载所有资源,例如,<img>
标签可能已经存在,但图像尚未加载。有关详细信息和建议,请参阅run_at
文档。 - 您可以使用回调 for
.executeScript()
,这可能是将一些回复传递回脚本的最简单方法,但请确保您了解预期回调的签名。
相关文章:
- 通过js在新选项卡中有条件地打开url
- 新选项卡被弹出窗口阻止程序阻止
- 在新选项卡中打开链接,但不使用_blank方法
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 在同一选项卡中启动下载,而无需在Javascript中打开新选项卡或窗口
- Javascript事件;在新选项卡中打开”;
- jQuery-尝试附加每个要选择的新选项
- 使用Javascript从Drupal打开新选项卡
- 如何在新选项卡中而不是在新窗口中打开URL
- 如何禁用鼠标中键单击超链接以在新选项卡或新窗口中打开
- 如何在新选项卡中打开链接以及在当前选项卡中重定向
- 如何超链接在新选项卡中打开并携带一些变量的选择标记
- 在新选项卡中打开iframe源
- 如何防止iframe中的链接在新选项卡中打开
- 单击我网站中的链接时打开新选项卡,保持当前选项卡处于活动状态
- 打开除域之外在新选项卡中打开的所有外部链接
- 如何使用jQuery更改当前URL并在单击时打开新选项卡
- 强制 window.open() 在 chrome 中创建新选项卡
- 如何在火狐扩展的新选项卡中打开网址
- 如何在新选项卡中打开新网页后获取书签中的 JavaScript 代码以执行