我有几个这样的听众,听取点击然后显示<div id="c50"><a hre...>CONTENT</a></div>
内的内容(在这种情况下)。一切都适用于Opera,Chrome和FF,但不适用于IE。
google.maps.event.addListener(pano50, 'click', function() {
fireEvent(document.getElementById("c50").getElementsByTagName("a")[0], 'click');
})
Chrome javascript控制台工具在点击后显示此错误(但工作正常):
Uncaught TypeError: object is not a function
但传统上,IE8显示:
Function expected on line 817
这是上面的第一行代码,点击后什么都不做。谢谢你的任何建议!
编辑:这是fireEvent函数:
function fireEvent(element, event) {
if (document.createEventObject){
/* for IE */
return element.fireEvent('on' + event, document.createEventObject());
}else{
/* for other browsers */
var evt = document.createEvent('HTMLEvents');
evt.initEvent(event, true, true);
}
return !element.dispatchEvent(evt);
}
答案 0 :(得分:2)
你已经在your page上运行了MooTools。 MooTools覆盖IE的内置element.fireEvent()
方法,its own normalized method方法适用于所有浏览器。 MooTools的fireEvent()
版本需要“点击”而不是“onclick”。
您只需将fireEvent
功能更改为使用“click”而不是“onclick”即可解决此问题:
/* for IE */
return element.fireEvent(event, document.createEventObject());
但是,由于MooTools规范化element.fireEvent
以适用于所有浏览器,您可以放弃fireEvent
功能,而只需直接拨打element.fireEvent()
。
你可能有更大的问题。你正在使用MooTools和jQuery,这很好,但如果你不知道你在做什么,你可能会很快遇到麻烦。
答案 1 :(得分:1)
它可能是抱怨因为
document.getElementById("c50").getElementsByTagName("a")[0]
不是一个功能。 fireEvent函数来自哪里?