是否可以从json线弹出窗口。
示例,此链接正常工作:
$json['msg'] = 'Welcome. Please, <a href="http://mylink/?chat_session='.$rows['id'].'">click here</a>!';
但是当我尝试为它创建一个弹出窗口时,它会说错误T字符串解析,就像那样。
对于我的弹出窗口,我尝试使用:
<script language="javascript" type="text/javascript"><!--function mbetter(url) {
newwindow=window.open(url,'name','height=600,width=550');
if (window.focus) {newwindow.focus()}
return false;}// --></script>
和链接
$json['msg'] = 'Welcome. Please, <a href="#" onClick="return mbetter('http://mylink/?chat_session='.$rows['id'].'')">click here</a>!';
可能导致此问题的原因是什么?
答案 0 :(得分:4)
这是转义字符串的问题。
$json['msg'] = 'Welcome. Please, <a href="#" onClick="return mbetter('http://mylink/?chat_session='.$rows['id'].'')">click here</a>!';
应该是:
$json['msg'] = 'Welcome. Please, <a href="#" onClick="return mbetter(\'http://mylink/?chat_session='.$rows['id'].'\')">click here</a>!';
请注意我是如何使用反斜杠转义JavaScript中的单引号的?
PHP manual on the Strings page:
中对此进行了描述要指定文字单引号,请使用反斜杠()对其进行转义。至 指定一个文字反斜杠,加倍(\)。所有其他实例 反斜杠将被视为字面反斜杠:这意味着 您可能习惯的其他转义序列,例如\ r或\ n,将是 按字面意思输出,而不是具有任何特殊含义。