sam*_*mJL 4 javascript php string
我试图在javascript工具提示中显示文本
即使以下情况,我仍然会得到未终止的字符串文字:a)引号被削减,b)没有换行符
我试图显示的文字是:
"No, we can't. This is going to be terrible."
Run Code Online (Sandbox Code Playgroud)
(它来自个人的报价,我希望这些报价显示在工具提示中)
我的工具提示功能就像这样
onMouseOver="Tip('string here')"
Run Code Online (Sandbox Code Playgroud)
我通过我的函数运行字符串来清理javascript
function jschars($str) {
echo preg_replace("/\r?\n/", "\\n", addslashes($str));
}
Run Code Online (Sandbox Code Playgroud)
它在HTML中看起来像这样:
onMouseOver="Tip('\"No, we can\'t. This is going to be terrible.\"')"
Run Code Online (Sandbox Code Playgroud)
这给了我错误的未终止字符串文字为第一个\在提示('\
我猜它是因为我试图将引号直接放在单引号内,我怎样才能解决这个问题呢?(我尝试过htmlspecial chars,例如替换"with" - 我仍然得到错误
Lee*_*Lee 12
这是因为你在XML(或html)元素的值中加入了双引号:
<div onMouseOver="Tip('\".......
Run Code Online (Sandbox Code Playgroud)
反斜杠不会从xml/html的上下文中逃脱它.从技术上讲,你需要对字符串进行实体编码(在javascript-escape之后).像这样的东西:
<div onMouseOver="Tip('\"No, we can\'t. This is going to be terrible.\"')" >
Run Code Online (Sandbox Code Playgroud)
各种浏览器可能会或可能不会正确处理.一个多更好的方式来处理这将是给元素的ID(或一类,或者一些其他的方法可以让你选择它),然后在处理从一个独立的脚本中添加鼠标.
| 归档时间: |
|
| 查看次数: |
7300 次 |
| 最近记录: |