我正在使用Chrome扩展程序从我无权访问的外部网站创建的页面中提取数据。作为该过程的一部分,我希望一个这样的页面(A)在单独的选项卡中从同一域中打开另一个页面(B),但是我不希望页面B运行扩展脚本。页面B应该是页面A的“从属”,并由页面A上运行的代码操纵。问题是如何传达消息,指出页面B不应该运行脚本。
创建页面B时,可以通过在URL上添加伪造的井号“ #dont_run_content_js”等来解决,该伪造标签可以被脚本拦截和解释。
var url = window.location.href;
if(!url.includes("#dont_run_content_js")){//run main script}
但是用户当然可以在B页的新标签页中进一步导航到匹配域内的另一页,然后该消息将丢失,并且在加载下一页时将执行脚本。
在使用href
属性显式指定每个链接的页面上,可以操纵那些href
值以包含消息主题标签。但是在这种情况下,没有<a>
元素–链接是通过不透明的机制发生的,该机制将自定义属性的编码数据发送到远程javascript。因此,必须找到另一个选项来“捆绑”新页面并向脚本发送消息。那可能吗?涉及jQuery的解决方案是奖励,而不是障碍。