onclick方法參數中有單引號、雙引號、空格


onclick事件傳參需要注意:當參數為字符串變量時,需要考慮到可能含有單引號、雙引號、空格,如果不做處理,方法會報錯

1.解決單引號問題

<c:set var="temp_param" value='${fn:replace(param,"\'","\\\\\'")}' /> 
<input onClick="doSomething('${temp_param}');" type="button" />

PS:如果這個地方param是通過<c:set var="param" value="${fn:escapeXml(param1) }"/> 獲取的,那么\'需要換成 "&#039;"

2. 解決雙引號問題

<c:set var="temp_param" value="${fn:escapeXml(param) }"/>
<input onClick="doSomething('${temp_param}');" type="button" />

3、同時解決單、雙引號的問題

<c:set var="temp_param1" value="${fn:escapeXml(param1) }"/>
<c:set var="temp_param1" value='${fn:replace(temp_param1,"&#039;","\\\\\'")}' />
<input type="button" onclick="test('${temp_param1}');" value="param2" />

PS:雖然fn:escapeXml可以將單引號和雙引號都轉義為:&#039; 和 &#034;但是&#039;(單引號)作為JS的參數還是會報錯,所以,我又只有再轉義&#039;為 \' ,只有 \' 不會報錯。

 4、解決空格問題

<c:set var="temp_param" value="${fn:escapeXml(param) }"/>

 

 

 


                      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM