JavaScript变量的值会自动转义

时间:2016-11-21 03:50:42

标签: javascript

<script>
test('test.php?a=%3D');//alert(1)
function test(a){
    alert(a);
    if(a == 'test.php?a=%3D'){
        alert(1);
    }else{
        alert(2);
    }
}
</script>
<a href="javascript:test('test.php?a=%3D')">aaa</a > <!-- alert(2) -->

为什么两种不同的方式得到不同的结果? 谁能帮我? 非常感谢你!

2 个答案:

答案 0 :(得分:1)

让我们分析这两种情况:

  1. test('test.php?a=%3D');//alert(1) test.php?a=%3D被视为变量。

  2. <a href="javascript:test('test.php?a=%3D')">aaa</a > <!-- alert(2) --> test.php?a=%3D被视为包含查询字符串的网址,%3D会转换为=。因此,完整的结果是test.php?a==

  3. 这就是这两个值不同的原因。同样,请考虑下面显示的代码 - test.php?a=%3D被视为变量,因此结果为alert(1)

    <input type="button" value="Click" onclick="javascript:test('test.php?
    a=%3D')"/>
    

答案 1 :(得分:0)

您的代码中有错误

第12行

<a href="javascript" click="test('test.php?a=%3D'">aaa</a > <!-- alert(2) -->

更改此行并尝试