我有一个网页,我抓住了html,通过套接字通过socket.io将其发送到另一个带有空iframe的页面,并动态地将html插入到iframe中。
我用来插入html的代码如下:
frame.open();
frame.write(html);
frame.close();
然而,似乎DOM元素的一些大小和间距与原始页面的呈现略有不同。
这里有两个屏幕截图,向您展示我的意思。很难看出差异,但顶部的搜索栏的长度略有不同,每首歌曲的标题与大缩略图的距离略有不同:
原始页面:
带有动态插入html的iframe的页面
html的唯一区别是将相对网址更改为绝对网址。除此之外,html,浏览器和窗口大小是相同的。此外,CSS样式也是一样。
这里发生了什么?
答案 0 :(得分:1)
一些默认设置(如边距和填充)在怪癖和标准模式之间有所不同 因此,请确保DOCTYPE声明与原始声明相同。
或者更正式地说,如果原始页面具有触发标准模式的任何DOCTYPE声明,则iframe中的源也需要具有类似的DOCTYPE。 (不必相同,只要它们触发相同的模式。)