我文档后无法连接到扩展.写我的网页

could not connect to extensions after I document.write my webpage

本文关键字:扩展 我的 网页 连接 文档      更新时间:2023-09-26

我发现了关于"扩展无法在新选项卡中连接"的问题,解决方案是使用chrome。TAB模块,但没有找到这样的内容:

我被困在这个问题上很多天了,如果有人能帮助我,我将很高兴。

我使用扩展跨域调用,但我的网页可以连接到扩展(我认为内容脚本)只有当我的页面是一个纯html页面。如果我改变我的页面的内容使用:document.open ();document . write (html);document.close ();(当用户登录时,我这样做是为了保持我的网页的url相同)

分机没有任何响应。有没有我遗漏的解决办法?

参考代码:

PageLoader.prototype.loadHTML = function(html) {
    if (history.pushState) 
    try {window.history.pushState(null, null, document.URL);}
    catch (e) {};
    document.open();
    document.write(html);
    document.close();
};
<<p> crossDomain代码/strong>:这个函数在点击某个按钮 时调用
`window.addEventListener( "message", function(event) {
    if (event.source != window ) return;
     callback(event.data.text); 
  });
 window.postMessage( { type: "com_logincat_xhr_get", url: url }, "*");    

这个postMessage是完成的,但没有得到任何响应,从chrome扩展的content_script.js(只有如果我使用文档。写在我的网页,以取代内容)。content_script.js也包含eventlistener for message。

window.addEventListener( "message", function(event)
 {
   /* It contains piece of code to send message (chrome.runtime.sendmessage) */
 };

我发现在某些地方content_script.js只在pagload和document附加。write可能会替换一些东西,但我没有找到任何解决方案。

我认为代码是正确的,因为它的工作顺利,当页面是一个简单的直接html。我不知道什么文件错了。写到我的网页我希望它会有所帮助,

谢谢你的帮助。

嘿,这就是我对上述问题的解决方案。

我发现扩展的content_script.js只在pagload时附加到DOM。并使用document.write('html')我正在修改DOM,它正在为与content_script.js的连接创建问题,所以我决定使用 document.documentElement。

使用这个,我遇到了另一个问题,那就是脚本没有得到执行,这是在var html。

我这样做了:

var scriptToInclude = document.getElementsByTagName('script');
 for (var n = 0; n < scriptToInclude.length; n++)
     eval(scriptToInclude[n].innerHTML);