现在我正在构建一个firefox插件,它复制了我网站上的一些功能。它接收电子邮件地址,然后将信息返回给用户。在插件中执行此操作的最简单方法是使用Iframe并在我的网站上呈现该超级简单的表单。所有这一切都很好,但为了使插件真正有用,我希望插件能够访问iframe呈现的信息,因此它可以在用户所在的当前窗口中使用它。
是否可以通过这种方式将信息传回Iframe?我知道有很多关于iframe的域访问限制,所以任何帮助或见解都会受到赞赏!!
答案 0 :(得分:0)
我已经做到了这两种方式。
如果iframe与父网站位于同一个域中,您只需在javascript中访问window.parent。
如果不是,那么......我做了一个肮脏的把戏。不过,我会在这里分享,因为它可能有所帮助。
我们在另一个域上创建了一个页面,该页面将调用window.parent.parent。我们将它放在iframed页面内的隐藏iframe中,并向它发送一个或两个querystring参数。它并不漂亮,但它解决了跨域脚本问题。
这基本上意味着你有这样的事情:
admin.example.com
content.example.com - iframe
admin.example.com?contentid=350 - 进行window.parent.parent调用的隐藏iframe。
答案 1 :(得分:0)
整个练习的重点是对您的网站进行功能测试吗?如果是这样,请考虑使用Selenium自动与网站进行互动,而不是使用自定义Firefox插件。它适用于所有主流浏览器,并支持检查您尝试执行的页面元素(使用XPath)。它还有一个名为Selenium IDE的Firefox插件,可让您方便地“记录”与网站的互动,以便日后自动播放。