2011-09-23 37 views
3

我有一个网站HTML存储在一个javascript字符串中&我想将它放在一个iframe中。 如何将该HTML字符串放入iframe &使其显示网站?我试过this.src = HTML_STR; this.innerHTML = HTML_STR;但他们不显示HTML_STR。可能:将我自己的HTML(整个网站)插入iframe

据我所知,这可能是愚蠢的,因为不是有一个字符串中的网站HTML我可以设置iframes src到网站&显示网站的方式。

但是我这样做的原因是因为它的网站更新。所以我想要获取网站(我正在更新)HTML,将所有具有“可更新”类的元素转换为textareas(以便它们可以更新),然后在iframe中显示HTML。

的另一个原因使用iframe &不仅仅是吸住HTML的DIV,是因为每个网站导入一个的CSS样式表&我不希望自己的css文件影响到我的网站更新CSS或有我的更新。因此,如果我在iframe中显示网站,每个网站的CSS不会互相影响,CSS会影响网站的HTML外观。

例如,如果updater.css具有以下这样会影响在其他网站的HTML中的所有p元素:

p { background-color: red; width: 50%; } 

那么,有没有插入我自己的HTML到iframe的方式。或者有另一种方法来实现我正在尝试做的事情。

+0

您仍然可以通过修改用户网站的CSS来避免使用iframe。 因此,如果您的div有一个id =“webedit” 你只是追加该ID在所有的CSS为客户的网站 – Canuteson

+0

呀的前面,但涉及解析CSS,补偿严重形成的CSS代码和改变CSS代码,这就是一个非常头痛的问题 – user593747

回答

3

假设你想写从父iframe中,你可以这样做:

var ifrm = document.getElementById('myFrame'); 
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument; 
ifrm.document.open(); 
ifrm.document.write('Hello World!'); 
ifrm.document.close(); 

这里的a working jsFiddle。原始代码取自herehere

+0

多数民众赞成在这么酷:)。感谢代码。我很惊讶所有你可以用HTML和JavaScript做的事情。如果有人想知道,其重要的是不要设置iframes src param,否则你的安全错误会阻止你访问文档 – user593747

-2

您可以尝试在iframe中执行document.write(yourHTMLString);

另一种方式可能是您刚刚使用JavaScript点击某个按钮时,与原来的HTML文本域里面来替代你的可更新的元素。

+0

你不能在iframe上调用'document.write()'。 –

相关问题