Fly*_*wat 10 javascript jquery internet-explorer-6
我有以下代码:
// Creates a timer to check for elements popping into the dom
timer = setInterval(function ()
{
for (p in pixelTypes)
{
checkElems(pixelTypes[p]);
}
}, 10);
// Add Document finished callback.
$(document).ready(function ()
{
// Document is loaded, so stop trying to find new pixels
clearInterval(timer);
});
Run Code Online (Sandbox Code Playgroud)
在Firefox中,它运行良好,但在IE6中,我在$(document).ready行上遇到"Object Expected"错误.
我无法弄清楚是什么原因导致IE6无法识别它,jquery完全被这一点加载.
这是一个已知的问题?
Adr*_*idt 15
对于任何有兴趣的人来说,只需几点:
$(document).ready(function() {...});
并且$(function() {...});
意味着完全相同的事情.后者是前者的简写.
如果您为大型站点开发,使用多个Javascript库,或者您开发的插件旨在与其他人的工作兼容,则您不能相信与jQuery对象关联的美元符号($).使用以下符号是安全的:
(function($) { [your code here] })(jQuery);
Run Code Online (Sandbox Code Playgroud)
这将jQuery传递给自执行函数,并将$与此函数中的jQuery对象相关联.那么$在你的函数之外代表什么并不重要.
要回到您的问题,您是否在收到错误时检查了是否已分配计时器变量?我相信浏览器会将$(document).ready(function() {...});
all视为一行,所以如果你有某种调试器告诉你这是违规行,那么它可能是timer变量......
最后一件事:在Javascript中,在新行上放置大括号是不正确的.由于Javascripts分号插入,这可能会导致非常糟糕的错误.有关详细信息,请阅读Douglas Crockford的Javascript:好的部分:
无论如何,真的希望我没有让任何人感到不安.希望你解决问题!
编辑:我不确定这是罗伯茨完全合格的意思,但据我所知,当URL完全合格时,意味着没有任何部分缺失,即.它是以http://或https://(或其他一些协议)开头的绝对URL.如果我错了请纠正我!
我认为您不应该像现在这样对元素进行轮询。
一旦浏览器加载到足以让您能够操作页面,文档就绪事件就会调用,因此您应该在块中进行 DOM 处理$(document).ready()
。
归档时间: |
|
查看次数: |
40217 次 |
最近记录: |