代码之家  ›  专栏  ›  技术社区  ›  Simon A. Eugster

浏览器独立的在线事件解决方案-有意义吗?

  •  2
  • Simon A. Eugster  · 技术社区  · 16 年前

    我最近发现自己在玩事件,因为没有标准的事件表明一个页面已经被加载(如onload和pageshow),我想知道是否有什么东西可以反对简单地在页面的末尾放一些javascript。然后在加载页面时执行此代码。

    在这个示例中,我将向IText标识的(输入)元素添加一个keyup侦听器,并将其分配给函数updatetext(event)(事件对象将传递给这个函数)。

    <html><head></head><body>
    <!-- content -->
    <script type="text/javascript">
        document.getElementById('iText').onkeyup = updateText;
    </script>
    </body>
    </html>
    

    此处为示例页面: http://kb.granjow.net/JavaScript/onload.html
    在Firefox 3.5、Opera 10.10、IE 6、IE 8中测试,适用于任何地方。

    那么,这是好事还是我错过了什么?

    期待你的回答。 西蒙

    2 回复  |  直到 16 年前
        1
  •  2
  •   chprpipr    16 年前

    这对于基本页面来说是可以的。但是,如果脚本处理的图像尚未完成下载或Ajax请求的结果,则可能会遇到问题。如果你在手工编码东西,这样的东西应该可以工作:

    function registerEvent(el, event, func, bCapture)
    {
        if (el.attachEvent)
            el.attachEvent('on'+event, func);
        else if (el.addEventListener)
            el.addEventListener(event, func, bCapture);
    
    }
    

    否则,各个JS库都有自己的实现,比如jquery的$(document.ready()。

        2
  •  2
  •   Grinn Amber    16 年前

    听起来不错。没有理由不这样做,只要你的脚本在页面的末尾。事实上,ASP.NET使用这个方法来加载它的脚本。

    推荐文章