【发布时间】:2011-05-04 13:41:13
【问题描述】:
我有这个方法:
function replaceRightClickIcefacesMethod() {
var oldName = jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu");
oldName = oldName.replace('Ice.Menu.contextMenuPopup', 'contextMenuPopupUpdated');
alert(oldName);
jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu", oldName);
}
在 Chrome 或 FF 上运行良好。 但是在 IE 上,我收到了这样的抱怨:
对象不支持该属性或方法
它把我指向第三行..
你有什么解决办法吗?
Ps:我使用的是最新版本的 jQuery (1.6)
更新:
我也试过:
var oldName = jQuery(".singlePaneOfGlassBlock")[0].getAttribute('oncontextmenu');
但 IE 仍然存在同样的问题
【问题讨论】:
-
attr("oncontextmenu")是什么类型? -
@Pekka 不是一直都是字符串吗?
-
@Pekka - 从 1.6 版开始就是字符串
-
不一定。在旧版本的 IE 中(带有
getAttribute错误),它可能是事件处理程序的function对象。 -
既然您已经在使用 jQuery,您应该避免在 HTML 属性中绑定事件处理程序。您应该尽最大努力尝试编写unobtrusive JavaScript,在这种情况下,这意味着 使用 JS 绑定 JS 事件处理程序。