我正在使用PHP生成一个Javascript按钮,该按钮会添加一个复选框和一些其他HTML。
将这些字符包含在onclick事件中的正确方法是什么?
我看到它建议将'和'转换为ascii值,但这似乎没有帮助。
$tempOutput = "<a href='temp.txt'>\"Happy\"</a>";
$tempOutput = str_replace("'", "'", $tempOutput);
$tempOutput = str_replace('"', """, $tempOutput);
如果你在使用之前回显字符串,就会产生这种结果:
<a href='temp.txt'>"Happy"</a>
如果你检查页面元素,那就是这个:
<a onclick="
var divTag = document.createElement('div');
divTag.innerHTML = '<a href='temp.txt'>"Happy"</a>';
document.getElementById('extraDiv').appendChild(divTag) ;
">test</a>
我也尝试过追加extradiv的innerHTML,但也没有成功。
答案 0 :(得分:3)
我主要使用PHP的rawurlencode()和Javascript的unescape():
<?php
$tempOutput = '<a href="temp.txt">'.htmlentities('"Happy"').'</a>';
?>
<a onclick="
var divTag = document.createElement('div');
divTag.innerHTML = unescape('<?php echo rawurlencode($tempOutput);?>');
document.getElementById('extraDiv').appendChild(divTag) ;
">test</a>
<div id="extraDiv"></div>
这也可以避免其他字符的错误,例如:换行符。
答案 1 :(得分:0)
像这样逃跑
$tempOutput = str_replace(array("'",'"'), array("\'",'"'), $tempOutput);
答案 2 :(得分:0)