3

这是我的代码:

<td onclick="openFile('<?php echo htmlentities ($row['name'])?>','
                      <?php echo htmlentities ($row['content'])?>')">
    <a href="#nf" data-toggle="tab"><?php echo $row['name']?></a></td>

因为 $row['content'] 中有一个 endline char:

openFile('哇','哇哇哇

哇 ');

并且当浏览器在同一行中找不到结尾 qoutes 时,它会抛出一个

错误(SyntaxError:未终止的字符串文字 [Break On This Error])。

有什么解决方案吗?

4

2 回答 2

8

您可以通过将其替换为空来删除它,

str_replace("\n","",$row['name']);

如果你需要你的换行符在你的 JS 字符串中,你可以双重转义它,

str_replace("\n","\\n",$row['name']);
于 2012-12-04T18:33:42.760 回答
0

我以前有同样的问题。PHP 中的json_encode和 JS 中的JSON.parse()帮助我解决了这个问题。在您的情况下,我将使用以下代码:

<td onclick="openFile('<?php echo htmlentities ($row['name'])?>','
                  <?php echo json_encode($row['content'])?>')">
<a href="#nf" data-toggle="tab"><?php echo $row['name']?></a></td>

然后在您的 openFile() 函数上,我将使用 JSON.parse()解析内容参数,如下所示:

function openFile(name, content){
     content = JSON.parse(content);

     ....
     // your codes here

}
于 2017-04-26T12:29:03.280 回答