javascript-DOM的Firefox侧边栏和Document对象

在Firefox侧边栏中加载了一个网页,在主文档中加载了另一个网页.现在,我该如何要求通过Firefox侧边栏访问主文档对象?一个通过firefox侧边栏文档中的Javascript代码访问主文档的示例将很有帮助.

感谢您的回答.但是,我必须完善我的问题.主窗口加载了一些网页,侧边栏包含了一个网页.我希望边栏窗口知道单击边栏窗口上的链接时用户在主窗口上选择了什么文本.我知道如何从窗口中获取选定的文本.只是侧边栏元素增加了我无法克服的问题的复杂性.

@PConory:

我喜欢您的回答,但尝试时出现错误:

Error: Permission denied to create wrapper for object of class
UnnamedClass.

谢谢.

解决方法:

据我所知,您实际上是在侧栏中加载网站(选中了“在侧栏中加载此书签”).在这种情况下,如果边栏正在打开主窗口页面,则为AND.您可以使用window.postMessage在它们之间进行通信.但是就像我说的那样,侧边栏页面必须打开主页,因为您需要窗口引用才能发布消息.

sidebar.js

var newwin = window.open('http://otherpage')
newwin.onload = function()
{
 newwin.postMessage('Hey newwin', 'http://sidebar');
};

mainpage.js
window.addEventListener('message',function(e)
{
 if(message.origin == 'http://sidebar')
  alert('message from sidebar');
},false);

使用此方法,您仍然无权访问该文档,但可以在它们之间进行通信并脚本化您要进行的任何更改.

编辑:投入一些思考,如果您从侧栏打开了窗口,则将具有DOM. var newwin = window.open(‘blah’); newwin.document使漏洞postMessage变得毫无意义.

上一篇:命名视图


下一篇:使用油猴脚本优化博客阅读体验