【发布时间】:2013-02-05 23:58:40
【问题描述】:
我有一个需要打印一些文本的 php / javascript 脚本。不幸的是,如果字符串有特殊字符,那么 js 似乎会崩溃
'
下面是脚本中的一个 sn-p。 $messageContent 和 $subject 是带有 html 标签的字符串。 (实际上是“'”字符)。
echo '
<script language="javascript">
function SelectRedirect(){
switch(document.getElementById(\'s1\').value)
{
';
echo '
case "?vrj_name='.$vrj_name.'":
window.location="?vrj_name='.$vrj_name.'&messageContent='.$messageContent_vrj.'&from_email='.$from_email.'&email='.$email.'&subject='.$subject.'";
break;
';
}
我在php中添加了一个函数用“\'”替换“'”并且它可以工作(js执行成功)但是当我在网页中显示它们时我无法驾驭它们。
【问题讨论】:
-
json_encode 字符串
-
你根本不应该用 PHP 回显 Javascript。不可维护、不可读、容易出错。见stackoverflow.com/questions/2766041/…
-
@bažmegakapa:
json_encode有什么问题? -
这真的是一个很好的问题。我会参考@gahooa 下面的答案,因为他确实把这个问题钉在了头上。
-
@Jon 仍然比串联的噩梦好,但我宁愿根本不将 JS 与 PHP 混合。当然,在某些情况下,它似乎是最好的选择,但我更喜欢
data-属性解决方案。
标签: php javascript escaping html-escape-characters