2011-04-21 66 views
2

我正在为论坛程序中的签名功能编写脚本,并且任何时候有人在其中放入引号或其他JavaScript可分析字符时,它会中断我的程序。跳过JavaScript中的动态字符串

有没有办法强制JavaScript将其识别为字符串,而不将其解析为脚本,否则,会跳出字符串中所有脚本的函数,该字符串将是动态的?

我做了一个搜索,所有我能找到的是关于如何用斜线逃脱个人角色的无尽网页 - 也许我的搜索技能需要工作。

回答

2

您是否将动态地使用服务器端语言的签名内容放入JavaScript字符串文本中?这可能不是最好的方式;你可能想重新考虑你这样做的方式。

例如,一个更好的方法可能是您可以在页面上拥有一个用于签名的元素(不必视觉上不同),然后获取用于脚本在JavaScript运行时。

如果你仍然想带你要去的路线,你可以(与\"如果你在你的脚本中使用双引号字符串或")代替'\'\\n取代\n,它取代与真正的换行符换行符逃脱。

+0

嗯,这是它的设置。这是用户面板页面,用户可以更改其个人资料内容,其中一个设置是签名。 PHP从数据库中抓取用户的所有信息,并将其放在一个javascript函数中,该函数在用户希望更改该设置时显示正确的div。当它显示PHP拉取的签名时,它会通过签名中的可解析信息打破JavaScript。我宁愿不改变页面的整个格式 - 你认为会有办法 – linus72982 2011-04-21 02:01:46

+0

然后我在我的问题中的最后一个声明应该有所帮助。 – 2011-04-21 02:03:10

+0

单独转义字符在这里是不可能的,因为数据是动态的,除非我每次都做一个相当于preg_replace的javascript来逃避一切。有一些函数可以在PHP中为你做,我只是认为javascript会有一个 – linus72982 2011-04-21 02:03:21