代码之家  ›  专栏  ›  技术社区  ›  meandmycode

在就绪状态之前操纵dom可以吗?

  •  11
  • meandmycode  · 技术社区  · 16 年前

    <div id="test">original</div>
    <script type="text/javascript">
        var t = document.getElementById('test');
        t.innerHTML = 'changed';
    </script>
    

    5 回复  |  直到 16 年前
        1
  •  5
  •   Andrew Martinez    14 年前

    如果你试图提高用户感知的性能(即敏捷性)。我强烈建议你避开这条路,考虑减轻你的页面。您可以使用雅虎的YSlow/Google的页面性能Firebug来帮助您入门。

    Google's Page Speed

    Yahoo's YSlow

        2
  •  3
  •   Rik Heywood    16 年前

    您可以在DOM完全加载之前对其进行操作,但这可能存在风险。显然,您无法保证您试图操纵的DOM部分确实存在,因此您的代码可能会间歇性失败。

        3
  •  1
  •   Christoph    16 年前

    只要你只修改脚本块之前的节点(即节点的结束标记在脚本的开始标记之前),你就不会遇到任何问题。

    如果要确保操作成功,请将代码包装在 try...catch setTimeout()

        4
  •  0
  •   Danita    16 年前

    <body>
    
    <script type="text/javascript">
        try {
            document.write('<div id="cargando"><p>Cargando...<\/p><\/div>');
            document.getElementById("cargando").style.display = "block";
        } catch(E) {};
    </script>
    
        5
  •  -1
  •   Kernel James    14 年前

    过早访问DOM会在IE 5和Navigator 4中引发异常。

    推荐文章