对象不支持此属性或方法 - IE 7/8
Object doesn't support this property or method - IE 7/8
知道为什么这在IE 7/8中不起作用吗?(在IE 9和10,FF和Chrome中工作正常)
当我单击"发送"按钮时,控制台显示:
SCRIPT438: Object doesn't support this property or method
script.1383689376.js, line 94 character 3
(Line 94) : token = $("#token").val();
.HTML:
<div class="comment_heading">Leave a Comment</div>
<div class="post_comment">
<textarea name="txtpostcomment" id="txtpostcomment-'.$postid.'" class="txtpostcomment"></textarea>
<button class="btnpostcomment" id="btnpostcomment-'.$postid.'" onclick="comment('.$postid.');" type="button">Send</button>
<input type="hidden" name="token" id="token" value="'.$_SESSION['token'].'">
<script>document.getElementById("txtpostcomment-'.$postid.'").focus();</script>
</div>
脚本:
comment = function(postid1)
{
txt = $('#txtpostcomment-'+postid1);
btn = $('#btnpostcomment-'+postid1);
comment1 = $(txt).val();
token = $("#token").val();
$(btn).css('background-image', 'url(/comments/submit-busy.gif)');
$(btn).attr('disabled', true);
$(btn).attr('disabled', true);
....
....
}
这行 HTML:
<input type="hidden" name="token" id="token" value="'.$_SESSION['token'].'">
创建名为"token"的全局对象的属性,该属性是对输入元素的引用。
在这一行中:
token = $("#token").val();
您有一个未声明的标识符。执行此行时,IE 尝试创建一个全局变量令牌(因为未声明的变量),但由于已经有一个(前面提到的 DOM 元素),IE 会抛出错误。
为什么IE不简单地分配新值是一个十多年来一直被问到的问题,你不会得到一个明智的答案。
简单的解决方法是声明所有变量。
使用函数表达式赋值给未声明的变量尤其糟糕。与函数声明相比,它没有任何好处,并且有一些严重的缺点(您刚刚发现了一个)。因此,始终在适当的范围内声明变量,并始终使用函数声明,除非您有很好的理由使用函数表达式。
相关文章:
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 为什么我得到错误IE修剪方法是't支持
- 元素.appendChild()插入IE.变通方法?(与innerText与textContent相关)
- .html() 方法的 jQuery 在 IE 9 中无法正常工作
- Javascript 错误:对象在 IE 浏览器中不支持此属性或方法
- 有没有一种方法可以阻止IE中键盘快捷键的传播
- Jquery没有在firefox浏览器中调用Webservice方法,它在Chrome和IE中运行良好
- JQuery.on(“mouseover”)方法不适用于IE
- 嵌套文档.writes和第三方广告在IE中不起作用!!!!任何安全的解决方法
- "对象没有't支持这种性质或方法“;在IE 8中.在调试中执行精细
- JS:服务器2008 R2的IE 10中未实现音频方法
- 简斯 |在IE中,addEventListener方法来自哪个接口
- 对象不支持此属性或方法 - IE 7/8
- (仅在IE中)SCRIPT65535:对方法或属性访问的意外调用.主.js,第 152 行字符 28
- IE 错误 .JavaScript 运行时错误:对象不支持属性或方法“preventDefault”
- 如何处理IE 8中缺少JavaScript Object.bind()方法
- 关于覆盖本机DOM方法时的IE 10问题
- html 选择列表更改无法在谷歌浏览器上调用方法(适用于 IE)
- 如何使用javascript或其他方法清除IE DNS缓存
- <选项> 禁用属性在 IE 之前的版本 8 中不受支持.任何解决方法