Javascript 如何使用内容脚本将另一个html和css文件一起注入html?

Javascript 如何使用内容脚本将另一个html和css文件一起注入html?,javascript,html,css,google-chrome-extension,Javascript,Html,Css,Google Chrome Extension,我完全不知道如何使用chrome扩展中的内容脚本将整个html注入另一个html 我现在正在做 document.body.innerHTML += 'html'; 但这只在注入一些次要的html代码时有用,而不是一个完整的html文件,它有自己的css和js文件 如何实现这一点?如果我理解正确,您是否尝试过ajax?类似于 var xmlRequestObject; if (window.XMLHttpRequest) { xmlRequestObject=new XMLHttpReques

我完全不知道如何使用chrome扩展中的内容脚本将整个html注入另一个html

我现在正在做

document.body.innerHTML += 'html';
但这只在注入一些次要的html代码时有用,而不是一个完整的html文件,它有自己的css和js文件


如何实现这一点?

如果我理解正确,您是否尝试过ajax?类似于

var xmlRequestObject;
if (window.XMLHttpRequest)
{
xmlRequestObject=new XMLHttpRequest();
}

xmlRequestObject.onreadystatechange=function()
{
if (xmlRequestObject.readyState==4 && xmlRequestObject.status==200)
{
document.getElementById("elementID").innerHTML=xmlRequestObject.responseText;
}
}

xmlRequestObject.open("GET","document.html",true);

xmlRequestObject.send();

这种ajax适用于主要浏览器,显然可以用正确的浏览器替换这些争论。希望我正确理解了你的问题。

如果我理解正确,你试过ajax吗?类似于

var xmlRequestObject;
if (window.XMLHttpRequest)
{
xmlRequestObject=new XMLHttpRequest();
}

xmlRequestObject.onreadystatechange=function()
{
if (xmlRequestObject.readyState==4 && xmlRequestObject.status==200)
{
document.getElementById("elementID").innerHTML=xmlRequestObject.responseText;
}
}

xmlRequestObject.open("GET","document.html",true);

xmlRequestObject.send();

这种ajax适用于主要浏览器,显然可以用正确的浏览器替换这些争论。希望我正确理解了您的问题。

如果您一直在尝试类似于将一个html文件加载到另一个html文件的方法,那么JQuery
load()
方法可能会有所帮助:

$( "#mydiv" ).load( "thepageIwannaload.html" );

您只需创建要加载为单独html文件的html,然后将其加载到您的文件中。

如果您一直在尝试类似于将一个html文件加载到另一个html文件的方法,那么JQuery
load()
方法可能会有所帮助:

$( "#mydiv" ).load( "thepageIwannaload.html" );

您只需创建要加载为单独html文件的html,并将其加载到您的文件中。

一般解决方案:使用iframes。切勿使用
document.body.innerHTML+='..'
,因为它将破坏互联网上几乎所有的动态站点…@RobW当我看到Pocket使用的代码时,它将代码注入html div,而不是iFrame。@RobW我以Pocket为例,因为这是我想要实现的,还有更多。
.innerHTML+=
将删除所有事件侦听器并使以前的任何元素引用无效。它只能用于您“拥有”的内容<代码>任意网页中的元素肯定不符合该标准。一般解决方案:使用iframe。切勿使用
document.body.innerHTML+='..'
,因为它将破坏互联网上几乎所有的动态站点…@RobW当我看到Pocket使用的代码时,它将代码注入html div,而不是iFrame。@RobW我以Pocket为例,因为这是我想要实现的,还有更多。
.innerHTML+=
将删除所有事件侦听器并使以前的任何元素引用无效。它只能用于您“拥有”的内容<代码>任意网页中的元素肯定不符合该标准。