如何知道DOM在用window.location.href更改URL后何时又准备好了
how to know when the DOM is ready again after changing URL with window.location.href
我正在使用Add-on SDK编写Firefox扩展,我成功地从内容脚本扫描了一个站点,现在想要更深入。但是,当我用
更改url时window.location.href = "http://www.thatsite.com/foo.php";
alert($('#abc');
我无法访问新的DOM。在网站被完全阅读之前,警报就会出现。我试过$(document).ready(function()
,但似乎这只起作用一次…
我怎么能等到网站完全建成?
您的内容脚本仅在页面加载时存在-如果您导航到其他页面,则该内容脚本实例将被卸载。内容脚本的另一个实例将被加载到新页面中,但是,您可以在那里执行所有必要的操作。唯一的问题是将数据从旧实例传递到新实例。您可以使用postMessage()
将数据发送到附加组件,然后让附加组件将其发送到onAttach()
处理程序中的新内容脚本。在你的情况下,这是否有可能取决于你想要达到的目标(你在问题中没有这么说)。
如果你想通过改变位置与选项卡交互,你需要将JS移动到更高的级别。参见:MDC文档。实际上,您的JS只在当前页面的上下文中应用一次。一旦新页面加载,它实际上就不存在了。
真的,你不应该像这样从一个插件与页面交互。这种行为类似于Greasemonkey用户脚本,而不是Firefox扩展。
相关文章:
- iFrame url更改时执行函数
- $http GET URL更改并查找错误的资源
- 用于自动将一种类型的URL更改为另一种类型
- 通过 JavaScript 捕获 URL 更改事件
- 如何在地址栏中的URL更改Firefox JPM时获得通知
- 在Twitch.tv上收听URL更改
- SEO友好的页面页面没有URL更改
- 对于多个视图,当URL更改时,我的子模板不会在Angular UI中加载
- 根据URL更改更改DOM元素类名
- 将 URL 更改为页面上单击的元素,而无需重新加载页面
- 当浏览器选项卡中的 url 更改时自动注销
- 提交请求时出现意外的 URL 更改
- 等待 Casper.js 中的 URL 更改
- 如何将URL更改为花式框内部URL
- 根据用于访问您的域的 URL 更改页面内容
- URL 更改事件 - JavaScript
- 在 url 更改时对 iframe 进行动画处理
- 如何在 Angular 中的 url 更改时仅重新加载一个控制器
- 选中并提交单选按钮上的 URL 更改
- 如何使用jquery(或javascript)检测没有哈希的url的url更改