[問題] 從html帶入javascript跳脫字元

看板Web_Design作者 (阿U)時間11年前 (2013/01/31 19:41), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/1
我的問題是這樣的 <body onload="callfun(參數);"/> 在body onload時會呼叫到javascript, 但是參數是從資料庫撈的 如果參數中帶有"這個字元程式就跑不出來 ex onload="callfun('<h1 name="test">test</h1>');" 如果沒有"就跑得出來 ex onload="callfun('<h1>test</h1>');" 請問有什麼方法可以讓我可以成功帶入參數嗎? 因為是從資料庫撈出來 所以如果要跳脫字元在JSP該用什麼函式呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.168.223.136

01/31 19:59, , 1F
以你這個例子,不要把參數放在html裡就好了吧
01/31 19:59, 1F
因為要從資料庫撈資料 那請問要如何塞給javascript呢? 有試過如果 在js裡用 var myString='<h1 name="test">test</h1>'; 就可以成功 ※ 編輯: sing10407 來自: 1.168.223.136 (01/31 20:03)

01/31 20:05, , 2F
htmlencode
01/31 20:05, 2F

01/31 20:11, , 3F
我好像記錯了,綱綱試不出來...
01/31 20:11, 3F

01/31 20:11, , 4F
如果另外一個方法是把所有 \ 取代為 \\ 把再把 " 取代為 \"
01/31 20:11, 4F

01/31 20:12, , 5F
^是在server端做處理的話,可以用
01/31 20:12, 5F
剛在onload中試過 將"用\"來取代 還是無法 如果沒有雙引號只有 onload="myfun('<p>測試</p>')" 可以成功 onload="myfun('<p name=\"test\">測試</p>')" 則失敗 ※ 編輯: sing10407 來自: 1.168.223.136 (01/31 20:31)

01/31 21:22, , 6F
('<p name=&quot;test&quot;>測試</p>') 這樣呢?
01/31 21:22, 6F
正解 然後再replaceAll就行了 感謝幫我的每位大大 ※ 編輯: sing10407 來自: 1.168.223.136 (01/31 22:03)

01/31 23:31, , 7F
urlencode跟urldecode server端跟javascript都有函式可以用
01/31 23:31, 7F
文章代碼(AID): #1H2bXo1w (Web_Design)