2012-09-12 115 views
2

我想问的是,是否有任何方式或扩展可以预先突出显示iframe中的文本,只要打开一个包含iframe的新窗口?我尝试了许多扩展,但都没有工作。 我需要根据特定关键字过滤掉内容,并且内容位于iframe内。我可以用CTRL + F来完成,但每篇文章中都有许多关键字,例如10-15。所以它使我的工作非常艰难和耗时。我已经尝试过的几个扩展是多荧光笔,珍珠,FF,但它们都不起作用。是否可以通过chrome扩展来访问iframe的内容?

我也知道这些扩展无法访问iframe中的内容的原因,即由于跨源策略。

但我还记得大约一年前,我使用名为'Autofill'的Chrome扩展,可以在我打开包含iframe的新Chrome窗口时预先选择表单元素。

那么有什么解决办法吗?

回答

2

通过在清单文件的内容脚本部分将all_frames设置为true,您可以将您的扩展权限设置为在所有框架中运行内容脚本作为文档http://developer.chrome.com/extensions/content_scripts.html#registration。添加到从该网页谷歌的例子,你的清单文件的一部分可能类似于

{ 
    "name": "My extension", 
    ... 
    "content_scripts": [ 
    { 
     "matches": ["http://www.google.com/*"], 
     "css": ["mystyles.css"], 
     "js": ["jquery.js", "myscript.js"], 
     "all_frames": true 
    } 
    ], 
    ... 
} 

你必须要小心,因为你的内容的脚本会针对父页面和一个被注入到页面一次页面上的每个iFrame。一旦您的内容脚本被注入到页面上的所有框架中,您就可以通过查找和突出显示文本来发挥魔力。

+0

尝试了你的建议。已下载该扩展名的.crx文件,将其更改为.zip文件,然后编辑manifest.json以包含“all_frames”:true。然后我压缩该文件并将文件类型更改为.crx。在尝试在浏览器中安装.crx文件时,出现错误: 程序包无效:'CRX_MAGIC_NUMBER_INVALID'。 如何解决这个问题? – Hammad

+0

好的,我已经解决了如何打包扩展。当我尝试通过Chrome浏览器打包扩展时,它会显示: Manifest不是有效的JSON文件。语法错误,第20行,第4列,语法错误。 第20行是我添加了“all_frames”的行:true – Hammad

相关问题