如果在生成的HTML里面有事件需要传递带特殊字符的参数,处理如下:
singletext 输入 “'"<>>”
1. $('singletext').value.escapeHTML() 为 (将html编码)
“'"<>>”
2. $('singletext').value.escapeHTML() .inspect()为
'/'"<>>'
3. 在$('JsDebugText').innerHTML 赋值的过程中,将以上第二步的字符串html解码一次变为
“/'"<>>”
如果不经过第一步编码:在第三部innerHTML复制的过程中字符串中的“>”会作为html标记的结束标记,而不是当作字符串
如果不经过第二步:在aaabbb函数参数的开始和结束符号上也会出现同样的问题。
- <script type="text/javascript" src="prototype.js"></script>
- <div id="JsDebugText">
- </div>
- <input type="text" name="singletext" value="" onBlur="fun_text()"/>
- <textarea name="testtext" rows="10" cols="55"></textarea>
- <script type="text/javascript">
- enableDebug();
- function aaabbb(sku){
- alert(sku);
- }
- function fun_text(){
- $('testtext').value = $('singletext').value.escapeHTML().inspect().unescapeHTML();
- //$('JsDebugText').innerHTML = "<a href=javascript:aaabbb("+$('singletext').value.escapeHTML().inspect()+ ")>aaaaa</a>";
- $('JsDebugText').innerHTML = '<a href=javascript:aaabbb('+$('singletext').value.escapeHTML().inspect()+ ')>aaaaa</a>';
- }
- </script>