网上很快有了原因分析及解决方法,原因是IE8中不支持“anonymous()”方法,于是网上能大量搜索到解决的办法,将anonymous()改为onclick(event),在IE8中便可正常使用,但在老版本的IE中便不能使用,然后就有人增加了版本判断,以下代码开始流行:
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK +
"anonymous()");
改为:
if(navigator.appVersion.match(/8./i)=='8.')
{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK +
"onclick(event)");
}
else
{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK +
"anonymous()");
}
但经过证实,上述解决方法并不理想,更好的判断方法将上叙代码修改为:
if (navigator.appVersion.match(/8./i)=='8.')
{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK +
'onclick(event)');
}
else
{
if(document.documentMode === 5) {
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK +
'onclick(event)');
}
else{
if (element.YUSERONCLICK) eval_r(element.YUSERONCLICK +
'anonymous()');
}
}