我正在写一个用于在外部网页上找到CSS选择器的工具。这是纯HTML页面,其中包含带有目标网站和少量控件元素的iframe。所有逻辑也都在使用jquery的javascript中,因此目前尚无服务器端。
我面临的问题是无法使用Firefox 26.0将处理程序/类添加到iframe文档元素。样例代码:
iframe.contents().find("*").hover(function() {
console.log("This is " + $(this).get(0).tagName + "element");
}
我在控制台中收到下一条错误消息:Error: Permission denied to access property 'document'
。我知道这确实是一项安全功能,但是我只需要以某种方式解决它。
我尝试过的
--disable-web-security
)的浏览器,以关闭此类安全功能。它提供了帮助,并且我的工具可以按预期运行,但是我需要使用Firefox。x-frames-origin header
该工具,但没有结果。security.fileuri.strict_origin_policy
在firefox配置中关闭标志。也没有帮助。也许我错过了一些东西,还有其他解决方法/更好的解决方案?我将不胜感激。
更新:页面和iframe不在同一网站上。我的工具只是本地.html文件,iframe源-任何网站(维基百科,雅虎等)
终于我找到了解决方案。我使用了一个插件GreaseMonkey。它允许我将js代码插入到iframe中,因此我可以使用Message API与页面中的代码进行交互。例子:
if (window.top == window.self) return;
window.addEventListener('message', yourHandlerHere, false);
window.parent.postMessage(yourDataHere);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句