做一个项目时,突然发现,禁用超链接后,还是可以进行点击操作,之前从未遇到这种状况.更为奇怪的是同样的代码在另一个项目中禁用就可以生效;
通过一项项排查,问题定位在了web.config的一段代码:
< httpProtocol>
< customHeaders>
< clear />
< add name ="X-UA-Compatible " value ="IE=EmulateIE7 " />
</ customHeaders>
</ httpProtocol>
这段代码的含义是在ie8+浏览器里以ie7模式渲染.所以问题就指向了ie7下超链接禁用不起作用(实验验证了我的想法);
所以现在要解决的问题就是ie7及以下的浏览器里如何是超链接禁用失效.
解决方案主要思路是:在超链接的onclick时间里根据disabled的值返回true or false;
通用写法如下:
function aOnClick(url) {
e = e || event;
var t = e.target || e.srcElement;
if (t.disabled) {
window.open(url);
}
}
}