onload加载栏和原型滚动条之间的冲突

时间:2010-11-08 16:48:08

标签: javascript prototypejs

我正试图理解

之间的这种冲突
  1. 我的loadingbarscript隐藏了我的内容,直到页面加载为止(从顶部删除了标签)

    function showContent(){
         //hide loading status...
         document.getElementById("loading").style.display='none';
         //show content
         document.getElementById("content").style.display='block';
      }
      window.onload = function() {
     showContent(); }
    </head>
    <body>
    <script type="text/javascript">
      document.write('<div id="loading"><img src="ajax-loader.gif"></div>');
    </script>
    <div id="content">
      <script type="text/javascript">
         //hide content
         document.getElementById("content").style.display='none';
      </script> 
    
  2. 和2.我的livepipe滚动条使用原型1.6.1 电话是这样的:

      <script type="text/javascript">
          document.observe('dom:loaded',function(){     
            var scrollbar = new Control.ScrollBar('cases_tekst','scrollbar_track');
                });
        </script>
    

    出于某种原因,根据订单,任何一个工作或其他工作。我有几个其他的windows.onload函数可以使用原型滚动条而不是这个。 希望更好地了解什么是错误的。萤火虫没有出现任何错误。 这个错误必须与onload调用有关,因为当我调整浏览器窗口的大小时,滚动条会起作用。

    希望有人能解释冲突的原因。

2 个答案:

答案 0 :(得分:1)

使用prototype的Event.observe函数,而不是使用window.onload来调用showContents。像这样:

Event.observe(window, "load", showContent);

有关此功能的更多信息:http://www.prototypejs.org/api/event/observe

有关不使用window.load事件模型的更多信息,请查看此站点:http://www.quirksmode.org/js/introevents.html

一般来说,quirksmode.org是一个很好的网站,可以理解这种事情以及它们在各种浏览器中的表现。这是使用诸如prototype或jquery之类的库的原因之一,因为它标准化了浏览器的大部分行为。

答案 1 :(得分:1)

我刚用livepipe滚动条解决了类似的问题。直到我在除Firefox之外的所有浏览器中调整浏览器窗口大小时,滚动条才会出现。原来这是由滚动div中内容的性质引起的。那里有许多不规则大小的图像。当我用文本替换它们或将它们全部平方时,它工作正常。