Safari扩展 - 响应消息的注入脚本太多

Phi*_*ipp 5 safari safari-extension

我正在尝试编写类似于Bubble Translate for Chrome的Safari扩展程序.

当您单击工具栏上的按钮时,它会使用Google语言API自动将当前选定的文本翻译为您选择的语言.

我使用以下注入的脚本来获取突出显示的文本并显示结果(作为暂时的警报):http://pastebin.com/bYVuQAmp

如果需要,我使用以下全局脚本来调用注入的脚本:hxxp://pastebin.com/VHaAKM5a

我遇到的问题如下:

该脚本不仅会被注入主页面,还会被注入到页面中嵌入的广告和类似内容中.因此,所选文本会被多次翻译,因为一个页面中的所有嵌入脚本都会响应该消息.

如何确保脚本仅注入正确的页面或只有正确的页面响应?

谢谢,

菲利普

zne*_*eak 1

也许您可以检查注入脚本的页面是否不在框架内:

if (window == window.parent) { /* you're not inside a frame! */ }
Run Code Online (Sandbox Code Playgroud)

我不确定它是否可以在<object>嵌入 HTML 的内部标签中工作。很可能是的。