Javascript 在我创建文档后无法连接到扩展。请编写我的网页

Javascript 在我创建文档后无法连接到扩展。请编写我的网页,javascript,html,Javascript,Html,我在新选项卡中发现了关于扩展无法连接的问题,解决方案是使用chrome.tab模块,但没有发现类似的问题: 我被这件事困扰了好几天,如果有人能帮助我,我会很高兴的 我正在使用扩展名进行跨域调用,但我的网页只能在我的网页是纯html网页时连接到扩展名内容脚本。如果我使用以下命令更改网页内容: document.open; document.writehtml; 文件关闭; 我这样做是为了在用户登录时保持我网页的url不变 我无法从分机得到任何回应。 有没有我遗漏的解决方案 参考代码: 替换页面的H

我在新选项卡中发现了关于扩展无法连接的问题,解决方案是使用chrome.tab模块,但没有发现类似的问题:

我被这件事困扰了好几天,如果有人能帮助我,我会很高兴的

我正在使用扩展名进行跨域调用,但我的网页只能在我的网页是纯html网页时连接到扩展名内容脚本。如果我使用以下命令更改网页内容: document.open; document.writehtml; 文件关闭; 我这样做是为了在用户登录时保持我网页的url不变

我无法从分机得到任何回应。 有没有我遗漏的解决方案

参考代码: 替换页面的HTML:

跨域代码: 这是单击某个按钮时调用的函数

`window.addEventListener( "message", function(event) {
    if (event.source != window ) return;
     callback(event.data.text); 
  });

 window.postMessage( { type: "com_logincat_xhr_get", url: url }, "*");    
`

此postMessage已完成,但仅当我在网页中使用document.write替换内容时,chrome扩展的content_script.js才没有收到任何响应。 content_script.js还包含消息的eventListner

window.addEventListener( "message", function(event)
 {
   /* It contains piece of code to send message (chrome.runtime.sendmessage) */
 };
我在一些地方发现content_script.js仅在pageLoad和document.write处附加内容,可能正在替换内容,但我没有找到任何解决方案

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


谢谢你的帮助

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

我发现扩展的content_script.js只在pageLoad时连接到DOM。 和使用文档。编写“html” 我正在修改DOM,这会给与content_script.js的连接带来问题, 所以我决定用 document.documentElement.innerHTML=html

使用这一点,我陷入了另一个问题,即脚本没有得到执行,这是在var html中

为此,我这样做:

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

它成功了:

可以发布完整的代码示例吗?感谢您的快速回复@MrSmith,我添加了一些代码示例,很抱歉我无法粘贴完整的代码,因为它包含大量文件。因此,我粘贴了一些,这将给您一个想法。嘿,我发现使用document.documentElement.innerHTML=html;其中html是我的新页面的html,而不是:document.writehtml;页面的state对象保持不变,因此我现在可以调用我的扩展:但由于innerHTML不允许执行标记,它通过我引发了另一个问题,因为新页面的一半HTML现在无法工作:
var scriptToInclude = document.getElementsByTagName('script');
 for (var n = 0; n < scriptToInclude.length; n++)
     eval(scriptToInclude[n].innerHTML);