使用iframe是不好的做法吗? iframe可以像画布一样翻译成图像吗?

时间:2014-07-06 07:09:33

标签: html iframe

我在互联网上看到很多关于不使用框架的投诉,并且使用框架被认为是不好的做法,而且它们已经过时了。

但是,iframe不会过时,但它们是框架。是否认为使用它们是不好的做法?

此外,可以将iframe呈现给数据:png / base64或者其他什么,就像画布一样吗?

2 个答案:

答案 0 :(得分:11)

  

但是,iframe不会过时,但它们是框架。是否认为使用它们是不好的做法?

有时你将单独的HTML文档嵌入到另一个HTML文档中,这没关系。为了记录,HTML5有一整个专门用于嵌入外部内容的部分,其中一个相关元素是iframeW3C HTML5)。

当然,无论是好的还是坏的做法也高度依赖于你的用例,但最佳实践问题本质上往往是相当广泛的。

  

此外,可以将iframe呈现给数据:png / base64或者其他什么,就像画布一样吗?

事实上,是的,虽然IE does not appear to support data:text/html at the moment

<iframe src="data:text/html,<!DOCTYPE html><html><body><p>abc"></iframe>

但是,这不是&#34;正确的&#34;这样做的方法(即使验证者不同意语法是否有效 - 由于所有HTML符号,W3C的Nu验证器似乎不喜欢data:text/html,而Validator.nu只是抱怨DOCTYPE中未编码的空格。要嵌入原始HTML,您需要使用新的srcdoc属性而不是src(具有even less browser support):

<iframe srcdoc="<!DOCTYPE html><html><body><p>abc"></iframe>

因此,一般来说,为iframe指定原始HTML现在是一个坏主意,即使浏览器开始支持srcdoc属性,您也应该在具有src属性的数据URI上使用它

答案 1 :(得分:1)

在我看来,使用 iframe 时需要考虑的最大问题是您可能包含的 3rd 方网站的安全问题。

例如,在 iframe 中,您包含来自第 3 方的内容。如果该第 3 方已被黑客入侵,那么您现在正在将您的用户直接从您自己的站点内暴露于该漏洞。事实上,对于您的用户来说,漏洞在于您的网站(他们可能不知道 iframe)。