0

私が知っているすべての組み合わせを試しましたが、うまくいきません!

echo  <<<EOF

     <a href="javascript:popup('$comments')">Popup!</a>   

EOF;

$comments に含まれる文字列をポップアップに渡したいのですが、エスケープ文字と連結の正しい組み合わせが得られないようです。助けてください!

ティア

編集: これは、私が言及した文字列に入る HTML です。

$comments.= "<b>" . $row['comName'] . "</b><br><i>" . $row['comment'] . "</i><br><br>";
4

1 に答える 1

1

最初に文字列を有効な Javascript/JSON にエスケープして Javascript 構文を保持し、次に Javascript をエスケープして、埋め込まれている HTML の構文を保持する必要があります。

$js = sprintf('javascript:popup(%s)', json_encode($comments));
printf('<a href="%s">Popup!</a>', htmlspecialchars($js));

これは非常に面倒なので、Javascript を HTML から分離する目立たない Javascriptを使用するようにしてください。

于 2013-04-09T03:15:21.523 に答える