我做了一个很棒的镀铬扩展程序来编辑我不喜欢的单词...除非我无法让它在iframe中运行......我已经在我的清单中了:
"matches": ["<all_urls>"],
"all_frames": true,
"run_at" : "document_idle",
"js": ["jquery-1.11.0.min.js", "myscript.js"],
我的代码很简单:
$('body :not(:has(*))').text(function(i, v) {
return v.replace(/OFFENDING-WORD/ig, '▓▓▓▓▓▓');
});
答案 0 :(得分:-3)
由于Same Origin Policy,您无法访问不在同一域中的iframe内容。它们对页面上运行的所有脚本或扩展都是完全不透明的(即javascript甚至看不到内容)。你无能为力。除非iframe的源是完全相同的域(这是罕见的)或源页面具有Access-Control-Allow-Origin标头集(也很少见),否则任何浏览器中运行的代码都无法访问iframe的任何内容。虽然它有时令人讨厌,但这是一个非常重要的安全功能,可以防止各种恶意活动。
编辑:对不起,当我的意思是同源政策时,我最初写的是CORS。 CORS是围绕执行代码绕过SOP的方法,但它需要设置Access-Control-Allow-Origin。