HTML <frame>标签的SRC属性 - 使用HTML代码替代URL

14

有没有一种纯HTML代码的方式来在框架内显示内容,而不必链接到特定的URL /文件?

例如:

不要像这样:

<iframe src="left.html" name="left"></iframe>

但是像这样

<iframe src="here goes the html code" name="thank you SO"></iframe>

3
设计上来说,这是不可能的。如果你只想要展示静态内容,那么使用<iframe>有什么意义呢?直接使用<div>标签即可。 - Shadow The Spring Wizard
看到另一个评论下我的答案!谢谢 - user966041
“不必关心引用和其他东西”是什么意思? - Shadow The Spring Wizard
问题在于我插入的代码会引用整个页面,所以代码不会显示在div内部,而是作为一个新页面显示。 - user966041
抱歉,不知道您的意思。无论如何,我的第一条评论仍然适用-您不能将内容放在<iframe>中,因为那不是它应该使用的方式。 - Shadow The Spring Wizard
4个回答

15

也许你可以像Michael Mahemoff在他的文章“将HTML注入iFrame”中所描述的那样,向iFrame/Frame注入HTML。

就像这样:

var content = "<html><body><b>Hello World!</b></body></html>";

var iframe = document.createElement("iframe");
    document.body.appendChild(iframe);

var frameDoc = iframe.document;
    if(iframe.contentWindow)
        frameDoc = iframe.contentWindow.document; // IE
    // Write into iframe
    frameDoc.open();
    frameDoc.writeln(content);
    frameDoc.close();

祝好运,

-- hennson


1

在HTML5中似乎有一种方法可以实现:

<iframe seamless sandbox srcdoc="<p>你已经找到封面图片了吗?"></iframe>

请参见这里,据说这是新的html5 srcdoc 属性的目的。

根据MDN的说法,目前只有Chrome才会支持srcdoc属性。

我无法让此属性正常工作,所以现在可能不是一个可行的选项。如其他人建议的那样,使用div 可能是一个更好的解决方案。


它目前没有被任何浏览器支持。 - Shadow The Spring Wizard

0

我认为你不能这样做。也许你可以尝试使用DIV,然后用innerHTML来修改内容?

<div id='A' onclick="javascript:document.getElementById('A').innerHTML = 'Another content'">
    Click me
<div>

谢谢你的回复。事实上这是我的先前尝试,但正如我在这个帖子http://stackoverflow.com/questions/9803700/jquerys-div-html-opens-new-page中所写的,在这种情况下它不起作用。这就是为什么我想使用一个框架,这样我就不必担心引用和其他东西,因为所有的事情都发生在那个框架内部。 - user966041
我之前不知道srcdoc属性,谢谢!但是我怀疑它并不支持大多数浏览器。我在这个页面上找到了这些信息:http://www.html-5.com/tags/iframe-tag/index.html#attributes - rfranr

0

iframe的srcdoc属性是一种简单的方法...

<iframe srcdoc="Your text goes here..."></iframe>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接