<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) -->
为什么两种不同的方式得到不同的结果? 谁能帮我? 非常感谢你!
答案 0 :(得分:1)
让我们分析这两种情况:
test('test.php?a=%3D');//alert(1)
test.php?a=%3D
被视为变量。
<a href="javascript:test('test.php?a=%3D')">aaa</a > <!-- alert(2) -->
test.php?a=%3D
被视为包含查询字符串的网址,%3D
会转换为=
。因此,完整的结果是test.php?a==
这就是这两个值不同的原因。同样,请考虑下面显示的代码 - 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) -->
更改此行并尝试