我有一个javascript函数,它以字符串作为参数。这个字符串是编码的(%20表示空格,%26表示&符号等。)。
function myFunction(theParam) {
alert(theParam); // outputs &
}
// called by the following link
<a href="#" onclick='myFunction("%26")'>Do something</a>
如何阻止此行为?我希望myFunction接收%26作为参数而不是&符号......
答案 0 :(得分:1)
您的示例会按预期警告%26
。 (然后转到导航到#
。请记住点击处理程序中的return false
以停止跟踪链接。)
如果您使用javascript:
链接
<a href="javascript:myFunction('%26')">Do something</a>
因为javascript:
网址仍然是网址,并且会遵循正常的网址转义规则。当然,您绝不应该使用javascript:
网址。
更好,从JavaScript本身分配,因此您不必担心HTML转义问题:
<a href="#" id="somethingdoer">Do something</a>
document.getElementById('somethingdoer').onclick= function() {
myFunction('%26');
return false;
};