延迟document.write

时间:2011-11-03 07:18:16

标签: javascript jquery

  

可能重复:
  JavaScript - controlling the insertion point for document.write

如果document.write阻止不在浏览器的视口中,我想延迟document.write。 我尝试在加载窗口后创建它,但document.write替换了整个内容:(

$(function(){
    document.write('bla')
)}

另外,在这个document.write我有广告的脚本,它必须在块中添加时工作。

有可能吗?

UPD:我有代码document.write,它会推送文档<script>。所以,由于这段代码,我的页面加载非常缓慢,我想只在dom准备好或用户滚动到我的广告所在的块时加载此脚本

4 个答案:

答案 0 :(得分:3)

document.write()将隐式调用document.open(),这将清除您的页面(如果已完成加载)。

您应该只在页面加载时执行它。

答案 1 :(得分:0)

我认为你想要的是这样的,而不是document.write:

$('#MyDiv').html("My Text <strongn>My Bold Text</strong>");

答案 2 :(得分:0)

非常困难。 因为如果您没有“写”元素,页面正文区域将没有正确的大小,您将无法移动/滚动页面。 如果您可以在编写之前测量元素,则可以向页面主体添加相同的空间,然后,您可以获得滚动条。您还需要一些代码来检测滚动条位置并确定编写元素。

答案 3 :(得分:0)

从代码中删除document.write。创建一个script DOM元素并将其附加到head

$(function(){
    var script = document.createElement('script');
    script.src = // Put the src of script here
    script.type = "text/javascript";
    document.getElementsByTagName('head')[0].appendChild(script);
)};