以前一直没有想过冒泡,不过今天居然遇到了。
情形是这样的,在我的<a>标签内部只是一个<input type="button">按钮。那么这样我的超链接就失效了。
原代码是这样的:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<a href='http://down.360safe.com/setup.exe' target='_blank'>
<input type='button' class='install_button_yellow' value='立即安装' />
</a>
</body>
</html>
这样我的360.exe是下载不下来的(我说的是IE浏览器)。
后来把代码改为下面这样初步解决了问题。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<a href='http://down.360safe.com/setup.exe' target='_blank'>
<input type='button' class='install_button_yellow' value='立即安装' οnclick='window.open(this.parentNode.href);'/>
</a>
</body>
</html>
在这里我用了一下this.parentNode找到其上层节点。这样在IE里面这个问题不存在了。
还好我这个代码只是放在IE里面的。要不然不是要开好多个窗口。郁闷啊。。
当然最好的解决办法是为什么要在<a>标签里面放<button>呢?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<input type='button' class='install_button_yellow' value='立即安装' οnclick='window.open(\"http://down.360safe.com/setup.exe\");'/>
</body>
</html>