我认为您最好将 JavaScript 和 PHP 分开。
因此,在您的 PHP 文件(或 HTML 模板)中,设置您的脚本:
<script type="text/javascript" charset="utf-8">
function show_details(id, title, content) {
alert(content);
}
</script>
我注意到的其他事情:为什么你的show_details
函数有三个参数(id
, title
, content
)但你下面的初始化函数只有content
?尝试删除id
和title
暂时,看看你是否可以开始content
工作。
那么你的 PHP 可能只是:
while ($row = mysql_fetch_array($result)) {
$content = nl2br($row['content']);
echo '<a id="details" onclick="show_details(\'' . $content . '\');"></a>';
}
现在,就导致问题的新线路而言,您是否尝试过这样的事情?
JavaScript 添加:
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
PHP:
while ($row = mysql_fetch_array($result)) {
$content = nl2br($row['content']);
echo '<a id="details" onclick="show_details(escapeHtml(\'' . $content .'\'));"></a>';
}
或者,正如本文评论所建议的那样,您可以尝试使用htmlentities
或htmlspecialchars
在您的 PHP 上使用,$content
例如:
while ($row = mysql_fetch_array($result)) {
$content = htmlentities( nl2br( $row['content']) );
echo '<a id="details" onclick="show_details(escapeHtml(\'' . $content .'\'));"></a>';
}
我不相信这是一个编码问题,但我肯定是错的...... :)