弹出窗口中的新链接因意外T_STRING而失败

时间:2012-01-20 11:55:04

标签: php javascript

是否可以从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>!';

可能导致此问题的原因是什么?

1 个答案:

答案 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,将是   按字面意思输出,而不是具有任何特殊含义。