如何在本机页面javascript执行完毕后执行扩展代码
How to execute extension code after native page javascript finishes executing?
如今,许多网页都有自定义的Javascript来执行页面加载。它们要么修改页面内容,要么加载外部小部件。
我的扩展尝试读取DOM并在页面中插入一些数据。然而,在某些情况下,如果页面有自己的Javascript,我的扩展会在页面Javascript之前执行。
因此,页面Javascript可能会覆盖我的插入或插入我的扩展无法读取的数据。在页面Javascript函数加载/执行之后,我如何才能等待执行我的扩展?
也许这会有所帮助,但它有一些不希望的副作用:
$(function () {
setTimeout(function () {
alert("At last!");
}, 1000); // 1000 millis after page loaded and most probably all onload handlers have been run
});
主要的副作用是它将在1000毫秒后执行,因此在这段时间内,用户将看到未处理的页面,然后您的脚本将对其进行操作。在这种情况下,这可能会变得丑陋,并损害用户的体验。
编辑:
你也可以试试这个。在主体的一端(内部,但最后)添加以下脚本标记:
<script>
$(function () { alert("LAST!"); });
</script>
根据脚本执行的规则以及jQuery遵循通过$(function () { ... });
习惯用法添加onload处理程序的顺序,您可以非常确定您的代码是最后执行的。问题是,任何异步执行,如AJAX回调处理程序,都将无序执行(即,相对于形成责任链的window.onload
处理程序异步执行)。为了应对这种情况,你需要一个模式,但它可能太过了。
相关文章:
- Chrome扩展:加载窗口后执行脚本
- FireFox扩展对TinyMCE编辑器执行脚本注入
- 要将 Chrome 扩展程序更改为 manifest_version 2,需要执行哪些操作?我的扩展程序只是在弹出窗口中
- Chrome扩展:加载页面时执行扩展
- 未能执行'waitUntil'在'可扩展事件'
- 如何让chrome扩展在页面加载的后台执行功能
- 淘汰js可观察扩展的执行顺序是什么
- 加载未打包的扩展时执行chrome.runtime.oInstalled fire
- Chrome扩展程序:加载并执行外部脚本
- 在所有浏览器上执行没有扩展名.js外部脚本重定向
- 当我在火狐扩展中使用页面模组添加内容脚本时.内容脚本函数执行三次
- chrome.tabs.on创建并执行Chrome扩展程序的脚本不起作用
- 弹出窗口.js 未在 Chrome 扩展程序中的 Popup 的头部标签中执行.html Popup
- 重新加载 Chrome 扩展程序内容脚本执行环境
- 当用户单击浏览器操作并出现弹出窗口(Chrome 扩展程序)时,如何执行操作
- Chrome扩展程序/根据弹出窗口中的选择执行不同的内容脚本.html
- onMessage 未在 Chrome 扩展程序上执行
- Chrome扩展 - 如何使用按钮单击功能执行javascript文件
- chrome扩展在url chrome://中执行扩展后不起作用
- 如何在本机页面javascript执行完毕后执行扩展代码