当前位置: 代码迷 >> JavaScript >> 防止HTML实体转换
  详细解决方案

防止HTML实体转换

热度:56   发布时间:2023-06-05 15:54:18.0

我有一个使用字符串作为参数的javascript函数。 该字符串已编码(%20表示空格,%26表示“&”等)。

function myFunction(theParam) {
       alert(theParam); // outputs &
}

// called by the following link
<a href="#" onclick='myFunction("%26")'>Do something</a>

如何停止这种行为? 我希望myFunction接收%26作为参数,而不是&符号……

您的示例向我发出了%26警报。 (然后进入导航至# 。请记住,从点击处理程序return false来停止跟踪链接。)

如果你在做它,你得到一个与符号javascript:链接:

<a href="javascript:myFunction('%26')">Do something</a>

作为javascript: URL仍然是URL,并接受正常的URL转义规则。 当然,无论如何都不要使用javascript: URL。

更好的是,从JavaScript本身进行赋值,这样您就不必担心HTML转义问题:

<a href="#" id="somethingdoer">Do something</a>

document.getElementById('somethingdoer').onclick= function() {
    myFunction('%26');
    return false;
};
  相关解决方案