最近碰到个奇怪的问题
<a href="javascript:document.getElementById('div').style.display='none'">连接<a>和
function aa()
{
document.getElementById('div').style.display='none';
}
<a href="javascript:aa()">连接<a>
,第二个执行可以得到隐藏div这个对象的效果,第一个得到的却是页面内none的效果,其他内容都没有
就像跳转到新的内容中了。
所以我想问下,在href中写javascript有什么特别的吗?
<a href="javascript:document.getElementById('div').style.display='none'">连接<a>和
function aa()
{
document.getElementById('div').style.display='none';
}
<a href="javascript:aa()">连接<a>
,第二个执行可以得到隐藏div这个对象的效果,第一个得到的却是页面内none的效果,其他内容都没有
就像跳转到新的内容中了。
所以我想问下,在href中写javascript有什么特别的吗?
<a href="javascript:void(document.getElementById('div').style.display='none')">连接<a>href写javascript:是一种协议,
document.getElementById('div').style.display='none'
相当于:先给document.getElementById('div').style.display赋值为none,然后在返回document.getElementById('div').style.display的值,所以显示出了none。加上void,则表示不用返回
不知道csdn这样写OK不.试试玩.
其返回值为$('div1').style.display='none'的执行结果也就是'none',
而第二个的返回值为nudefined.对于A标记来说如果返回值为非undefined
则会将返回字符串作为结果输出.我们平时点一个超链接之所以页面会变化
就是因为那个url的返回结果为html字符串,这是我的猜想还没有得到相关
文献的考证,如有不对请大家指正测试1
<a href="javascript:$('div1').style.display=undefined;">连接 </a>
<a href="javascript:aa()">连接</a> <div id="div1">div1</div><script type="text/javascript">
var $=function(id){
return document.getElementById(id);
}
function aa(){
$('div1').style.display='none';
return "abc";
}
</script>测试2
<a href="javascript:$('div1').style.display=undefined;">连接 </a>
<a href="javascript:aa()">连接</a> <div id="div1">div1</div><script type="text/javascript">
var $=function(id){
return document.getElementById(id);
}
function aa(){
$('div1').style.display='none';
return "<html><head><title>test</title></head><body>test</body></html>";
}
</script>
http://msdn.microsoft.com/en-us/library/aa767736%28VS.85%29.aspxhttp://www.webreference.com/js/tips/000204.html