0
<?php
$var1 = str_replace('\n', "<br/>", $var1);
$var2 = str_replace('\n', "<br/>", $var2);
$var3 = str_replace('\n', "<br/>", $var3);

/*
$var1 = nl2br($var1);
$var2 = nl2br($var2);
$var3 = nl2br($var3);
*/
?>

<a href="javascript:" class="history_link" style="color:<?php echo $color; ?>" onclick="showPopUpWindow(
   '<?php echo htmlentities($var1, ENT_QUOTES); ?>',
   '<?php echo htmlentities($var2, ENT_QUOTES); ?>',
   '<?php echo htmlentities($var3, ENT_QUOTES); ?>'
   );">

我的情况是这样的:我有一些来自数据库的文本,我需要使用标签的 onclick 事件将它作为参数传递给 JS 函数(我知道这很糟糕,但我正在处理随机的代码4年前的自由职业者,我别无选择)。我不知道文本包含什么。它可能有特殊字符($、#、%、"、' 等),它可能包含 HTML 标签。我尝试使用 htmlentities、nl2br,将 nl 替换为 br (str_replace),将 onclick 事件的引号更改为单引号和double 但它不起作用。我必须传递 3 个参数。

这是我的代码的一部分。任何帮助,将不胜感激。

4

1 回答 1

0

你试过json_encode吗?

<a href="javascript:" class="history_link" style="color:<?php echo $color; ?>" onclick="showPopUpWindow(
   <?php echo json_encode($var1); ?>,
   <?php echo json_encode($var2); ?>,
   <?php echo json_encode($var3); ?>
   );">
于 2012-05-28T08:02:56.553 回答