有人可以告诉我如何处理这种情况吗?
我一起使用PHP和JQuery创建一个带参数的新url。但是,它没有在网址中加入&符号,而是#38;#38;"。然后,浏览器不会读取我的第二个参数。我也试过使用"& #38;" (打破显示在SO上),它在字面上创造了回声,简单"&"也导致了html代码," \ $" >十六进制,"&&" > htmlhtml ...
如何让脚本创建&?
我在文本模式下使用wordpress平台。
这是我使用"& naam"时得到的:
编码
echo "<script>
$(function() {
$('.checked').click(function(e) {
e.preventDefault();
var dialog = $('<strong>Wat is jou RSVP keuse?</strong>').dialog({
buttons: {
\"Ja\": function() {
window.location.href = \"http://hannelliemarcel.co.za/rsvp-ja?email=" . $Email . "&naam=" . $Naam . "\";
},
\"Nee\": function() {
window.location.href = \"http://hannelliemarcel.co.za/rsvp-nee?email=" . $Email . "&naam=" . $Naam . "\";
},
\"Kanselleer\": function() {
dialog.dialog('close');
}
}
});
});
});
</script>";
答案 0 :(得分:0)
我能够通过使用encodeURI()来解决问题;在Javascript中使用参数化网址。
而不是使用&符号的HTML代码,这是&amp; #38;,我用的是&符号的UTF-8格式,它是\ u0026。这是一种更安全的角色编码方式。
这就是它的样子:
<script>
function createAmp(){
var symb = encodeURI('\u0026');
document.getElementById('contentArea').innerHTML = "http://example.com/foo?id=123" + symb + "name=john";
}
</script>
感谢评论中的每个人的建议,尤其是@milz。