首页 新闻 会员 周边 捐助

<a> href=“javascript:test('1%2f2%22+K-08503-AA2A')” 自动将字符串给转义了 求解!!

0
悬赏园豆:30 [已解决问题] 解决于 2017-04-27 16:51

情况是这样的,两个a标签,一个用href来出发click事件,另一个用onclick来出发,都调用相同的test方法,传入相同的字符串,字符串中包含转义过的特殊字符,但在方法内得到了两个不同的结果,一个被自动反转义了,求解其中原理是什么?

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>a element</title>
    <script>
        function test(text){
            alert(text);
        }
    </script>
</head>
<body>
    <ul>
        <li><a id="mmm" href="javascript:void(0)" onclick="test('1%2f2%22+K-08503-AA2A')">Test A</a></li>
        <li><a id="ttt" href="javascript:test('1%2f2%22+K-08503-AA2A')">Test B</a></li>
    </ul>
</body>
</html>

 

HTML如上,

Results:

 

单击“Test A”, 得到‘1%2f2%22+K-08503-AA2A

单击“Test B”,得到‘1/2"+K-08503-AA2A

href="javascript:test(‘1%2f2%22+K-08503-AA2A’)"

onclick="test(‘1%2f2%22+K-08503-AA2A’)"

的区别是什么?

嘻哈烧饼的主页 嘻哈烧饼 | 初学一级 | 园豆:173
提问于:2017-04-27 14:21
< >
分享
最佳答案
1

一个是在href 也就是url中会被转义,一个在非url属性中不需要转义

收获园豆:30
慧☆星 | 大侠五级 |园豆:5722 | 2017-04-27 14:29

了解了

所以<a>标签的href值总会被当作一个URL来处理,哪怕它不是一个真实的URL而是一个javascript小片段

谢谢

嘻哈烧饼 | 园豆:173 (初学一级) | 2017-04-27 16:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册