登录  /  注册
onclick="return fun(this)/javascript:fun(this)/fun(this)"的区别?
迷茫
迷茫 2017-04-11 10:04:27
[JavaScript讨论组]

onclick="return fun(this)",
onclick="javascript:fun(this)",
onclick="fun(this)"的区别?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
怪我咯

凭什么忽略我???我也是在认真回答


<script language="vbscript">'没错,我没有写错</script>
<script language="javascript">
//既然调用了 fun,首先需要有个 fun
var fun = function(obj){
    alert(obj.rel);
    if( obj.rel == "disabled"){
        return false;
    }
}
</script>
<hr />
onclick="return fun(this)"
<a rel="disabled" href="https://segmentfault.com/q/1010000005070024" onclick="return fun(this)">一个链接</a>
<script>
/*
    this == 当前DOM元素
    onclick =  return false; 会阻止默认事件执行(页面跳转)
*/
</script>
<hr />
onclick="fun(this)"
<a rel="disabled" href="https://segmentfault.com/q/1010000005070024" onclick="fun(this);">一个链接</a>
<script>
/*
   和第一个基本一样,唯一的区别就是无论函数返回结果为啥,事件都会继续执行
*/
</script>
<hr />
onclick="javascript:fun(this)"
<a rel="disabled" href="https://segmentfault.com/q/1010000005070024" onclick="javascript:fun(this);">一个链接</a>
<script>
onclick="javascript:fun(this)"
/*
   在现代的浏览器看来,和第二个完全一样。
   在远古的IE浏览器中(你没猜错,我说的就是IE8和之前的IE),支持两种脚本语言:JavaScript、VbScript。
   谁写在前就优先使用谁,假如vbscript是页面的第一个script,页面就以哪种引擎到做默认引擎
   当前测试代码,IE8和IE8以下就把vbscript当作默认引擎,访问javascript代码,需要在前边指定:javascript(就只有最后一个可以弹出disabled)
*/
</script>

下边是小故事版本,写了一个晚上,不舍得删。


虽然都是很low很古老的写法,看到 javascript:fun(this) 这种写法,还是觉得很需要回答一下。

虽然在技术上没有任何的意义,但是从历史故(che)事(dan)的角度我还是想讲讲,请自带板凳。


话说在愚昧的二十世纪,【互联网星球】 还是未开化的野蛮之地。在这个世纪的最后五年里(1995),有一个部落 在 【N大帝】的带领下,凭借着自主研发的【J武器】疯狂的攻城掠地。在当时【J武器】,是非常先进的。如果没有意外,【N大帝】很快将能统一【互联网星球】。

【N大帝】的快速扩张,引起了贪婪的球外势力 【M大帝】(居住在【软件星球】) 的注意。【M大帝】派出了【E伯爵】前往【互联网星球】,希望成为【互联网星球】的统治者。当时【J武器】已经普遍用于军事活动中,双方同样使用【J武器】进行战斗。

【E伯爵】就是后来众所尊称的【E大帝1世】。一年后(1996),【E伯爵】的后代【E大帝3世】得到了【M大帝】新发明的【V武器】。同时使用【V武器】和【J武器】的【E大帝3世】,很快就在战争中占据了上风,而【V大帝】则慢慢走上了衰落。到【E大帝6世】时,在【互联网星球】上【N大帝】已经没有了的势力。凭借着【J武器】和【V武器】两大神器,【E大帝6世】和他的家族成为星球的绝对统治者。

/*
   小知识:【E大帝3世】的将士们带两种武器,怎么战斗呢?
   把【V武器】当作主武器将士们,需要使用【J武器】时,只需要说明自己需要【J武器】就可以了。比如:【J武器】:sha().sha().sha();
*/

如果你认为故事到这里就结束了,那你就大错特错了。【N大帝】的残部【MO大神】的养子【F大帝】,绝对能称得上天生的王者。【F大帝】对【J武器】进行了纳米级改造,缺乏创新【V武器】在这时已经是淘汰的边缘了。在 球外势力【G大帝】(居住在【搜索星球】)的帮助下,【F大帝】在战斗中节节胜利。

正在【F大帝】准备大展身手,彻底消灭【E大帝7世】,故事又有了戏剧的变化。【G大帝】竟然派出得力干将【C大帝】加入了【互联网星球】的统治者争夺战。【C大帝】凭借着改进的【J武器】,势力竟然慢慢超过了【F大帝】。三方势力拼的你死我活,都没有能力彻底消灭对手,一时三足鼎立、各立一方。

一晃十四年过去了(2009),时任统治者的【E大帝9世】忽然发现【V武器】已经彻底成为了摆设,彻底的放弃了集合了父辈门无数智慧的【V武器】。至此,在【互联网星球】上全部征战的势力,全部使用【J武器】作为了唯一的武器。

又过了N年,大权已经传到了【E大帝11世】。居住在【软件星球】的【M大帝】对 战争的结果非常不满意,放弃了对【E大帝】家族的信任,派出【Edge伯爵】接管【E大帝】家族的一切。当然这又是另外一个故事了。


热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号