2011-04-21 63 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