0

我正在尝试传递带有空格和特殊字符的字符串,但它出现错误并且没有任何工作。例如

 <img onclick='addKeyword("celebritynews&gossip");' src="images/plus.png" >

但是字符串名人新闻和八卦中的“&”正在破坏代码。

我发现问题出在addKeyword函数上,我使用以下代码定义了一个名为 url 的变量,

function addKeyword(categoryId){
var url = "addKeyword.php?uid=" + user_id + "&categoryId=" + categoryId + "&keyword=" + $("#keyword_" + categoryId).attr("value");
}

并且 $("#keyword_" + categoryId) 引起了问题。有什么办法解决吗?

4

3 回答 3

3

假设您在 URL 上传递字符串,则参数值需要进行 URL 编码。

...摘要编辑...

&解释为 HTML 并且必须是 HTML 编码的,特别是&amp;

HTML

<img onclick='addKeyword("celebritynews&amp;gossip");' src="images/plus.png" />

JavaScript

使用 encodeURIComponent(s)。

var url = "addKeyword.php?uid=" + encodeURIComponent(user_id) + "&categoryId=" + encodeURIComponent(categoryId) + "&keyword=" + encodeURIComponent($("#keyword_" + categoryId).attr("value")); 
于 2012-09-14T15:21:35.610 回答
1

尝试

<img onclick="addKeyword('<?php echo htmlspecialchars('celebritynews&gossip'); ?>')" src="images/plus.png" >
于 2012-09-14T15:54:41.957 回答
0

假设您正在将此文本写入页面,您可以使用htmlspecialchars它来确保它在 HTML 中正确转义。

例如:

<?php echo htmlspecialchars("celebritynews&gossip"); ?>

这有帮助吗?

于 2012-09-14T15:24:20.403 回答