Javascript 添加动态 HTML 的字符串问题
我正在使用 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,但也没有成功。
I'm using PHP to generate a Javascript button that adds in a checkbox and some other HTML.
What is the proper way to escape these characters to include them in an onclick event?
I saw it suggested to convert ' and " to the ascii values, but that doesn't seem to have helped.
$tempOutput = "<a href='temp.txt'>\"Happy\"</a>";
$tempOutput = str_replace("'", "'", $tempOutput);
$tempOutput = str_replace('"', """, $tempOutput);
just results in this if you echo the string right before use:
<a href='temp.txt'>"Happy"</a>
and this if you inspect the page element:
<a onclick="
var divTag = document.createElement('div');
divTag.innerHTML = '<a href='temp.txt'>"Happy"</a>';
document.getElementById('extraDiv').appendChild(divTag) ;
">test</a>
I've also tried just appending to the extradiv's innerHTML but no success there either.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我主要使用 PHP 的 rawurlencode() 和 Javascript 的 unescape():
这也将避免其他字符的错误,例如换行符。
I mostly use PHPs rawurlencode() and Javascript's unescape():
This will also avoid errors with other chars, e.g. linebreaks.
就这样逃走
Escape like this
使用 html_entity_decode
use html_entity_decode