Javascript InternetExplorer说对象没有';不支持此属性或方法
这一行是79:Javascript InternetExplorer说对象没有';不支持此属性或方法,javascript,jquery,debugging,mootools,Javascript,Jquery,Debugging,Mootools,这一行是79: window.addEvent('domready', function(){ mySlide = new Fx.Slide('advert'); mySlide.hide(); }); 它也不喜欢这一行: this.wrapper = new Element('div', { 'styles': $extend(
window.addEvent('domready', function(){
mySlide = new Fx.Slide('advert');
mySlide.hide();
});
它也不喜欢这一行:
this.wrapper = new Element('div',
{
'styles': $extend(
this.element.getStyles('margin'),
{'overflow': ''}
)
})
.injectAfter(this.element)
.adopt(this.element);
有人知道为什么会这样吗?有人知道如何解决这个问题吗?我正在使用jQuery和Mootools。。并且想要一个解决方案。在文件中的这一行之前是否包含jQuery/mooTools?在我看来,在包含它所依赖的框架之前,您已经包含了一个插件或其他javascript。我假设您也在noConflict()模式下使用jQuery,因为您同时使用jQuery和mooTools。似乎您并没有真正利用jQuery。我不会说mooTools,所以我可能不完全正确,但我会尝试以下方法:
jQuery(document).ready( function() {
//you could convert this to jQuery too, of course
mySlide = new Fx.Slide('advert');
mySlide.hide();
} );
jQuery(this).wrap( '<div class="overflow-wrapper"></div>' )
.parent('.overflow-wrapper').css('overflow', '' );
var cancel;
//... bla bla
cancel = form.elements[i]; //cancel is now a <button>; no Id, unique on the page
cancel.addEvent('click', function(e) {...});
jQuery(文档).ready(函数(){
//当然,您也可以将其转换为jQuery
mySlide=新的外汇幻灯片(“广告”);
mySlide.hide();
} );
jQuery(this.wrap)(“”)
.parent('.overflow wrapper').css('overflow','');
如果尝试为样式属性指定无效值,IE通常会出现此错误。如果您正在使用IE8,并且在“工具”->“选项”->“高级”下启用了“启用javascript调试”,则可以尝试对其进行调试,并查看哪个属性分配引发了此错误,然后尝试更正此错误。如果您登录此页面时拼命搜索IE中出现此错误的原因,请允许我指出发生这种情况的另一种方式。希望,无论是我发布这篇文章的行为能帮助我记住这一点,还是下一次我遇到这个错误时,这个问题会出现在谷歌上。这似乎至少每两年发生一次
如果您将变量(不确定它是否必须是全局变量,这次是我的)与元素的ID命名为同一个名称,则会出现这种情况。例如:
<div id="foo">
</div>
<script type="text/javascript">
var foo = 1; < --Object doesn 't support this property or method!!
</script>
变量foo=1;<--对象不支持此属性或方法!!
+1了解有关变量名称的早期答案。这在IE8中是:
title = button.attr('title'); <-- Object doesnt support this method
$title = button.attr('title'); <-- OK!
title=button.attr('title') 如果变量列表中没有逗号,也可能发生这种情况,如下面的“f”变量:
var a = 'aaaa',
f = 'ffff'
b = someObject.attribute;
只是对谈话的简短补充
在某些情况下(想到video.js/bigvideo.js),您需要在jQuery或jQueryUI之前运行modernizr.js作为第一个脚本。立即清除所有内容。(MooTools)
我的代码是这样的:
jQuery(document).ready( function() {
//you could convert this to jQuery too, of course
mySlide = new Fx.Slide('advert');
mySlide.hide();
} );
jQuery(this).wrap( '<div class="overflow-wrapper"></div>' )
.parent('.overflow-wrapper').css('overflow', '' );
var cancel;
//... bla bla
cancel = form.elements[i]; //cancel is now a <button>; no Id, unique on the page
cancel.addEvent('click', function(e) {...});
var取消;
//... 布拉布拉
取消=表单元素[i]//取消现在是一个;没有Id,在页面上是唯一的
cancel.addEvent('click',函数(e){…});
我在cancel.AddEvent()
上得到OP的异常。对我来说,解决这个问题的方法是将它重写为$(cancel).addEvent()
多么糟糕的浏览器。谢谢,我从来没想到会是这样。疯子似乎它必须是全球性的。对我来说,在一个函数中,使用var声明有效,而不使用var声明失败。如果像类一样调用一个n对象,似乎也会出现同样的问题。即,如果定义window.foo=new foo();您将出现错误“对象不支持此属性或方法”。难以置信。我已经尝试修复这个IE8错误一天多了,我可以告诉你有很多方法可以导致这个问题。不幸的是,我仍在尝试修复我的问题,所以很明显,我还没有找到所有可能的原因和解决方案(我因无法访问开发人员工具栏而受阻)