问题描述
jsp页面上某地方是:<table id='nowPersonTable' width='100%' align='center'> <tr> <td> </td> </tr>js脚本里的代码是这样子的:function check(){ var dhtml="<table id='nowPersonTable' width='100%' align='center'>"; dhtml+="<tr>" dhtml+="<td height='20' valign='top' colspan='4' bgcolor='#CCCCCC'>"; dhtml+="<div class='dtree' style='WIDTH:100%; HEIGHT:450; OVERFLOW:scroll;'>"; dhtml+="<s"; dhtml+="cript language='javascript'>alert("这里是内容");"; dhtml += "</scri"; dhtml += "</div></td></TR></TABLE>"; nowPersonTable.outerHTML=dhtml;}为什么输不出去?换成别任何东西 都可以在页面上输出去了。为什么javascript输不出去呢?有什么办法直接触发这个事件,然后能将javascript的脚本写入到某处,可以直接运行。 问题补充:故意拼成那样子的。反正就是对的,那个值我都复制到某页面上全对的。只不过那样子直接写出去就不行。不知道怎么弄郭伟198711 写道
解决方案
尝试很久 终于解决楼主的问题<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body><table id='nowPersonTable' width='100%' align='center'> <tr> <td> <div> </div> </td> </tr> </table><input type="button" value="test" onclick="check()" /><script type="text/javascript">var dhtml="<table id='nowPersonTable' width='100%' align='center'>"; dhtml+="<tr>" dhtml+="<td height='20' valign='top' colspan='4' bgcolor='#CCCCCC'>"; dhtml+="<div class='dtree' style='WIDTH:100%; HEIGHT:450; OVERFLOW:scroll;'>";dhtml+="<s"; dhtml+="cript language='javascript'> alert('这里是');"; dhtml += "</scrip"; dhtml +="t>";dhtml += "</div></td></TR></TABLE>"; var nowPersonTable = document.getElementById('nowPersonTable')//动态执行加载在el中的htmlcode 包括htmlCode中的js部分var setOuterHTML = function (el, htmlCode) {var ua = navigator.userAgent.toLowerCase();if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0) {htmlCode = '<div style="display:none">for IE</div>' + htmlCode;htmlCode = htmlCode.replace(/<script([^>]*)>/gi,'<script$1 defer>');el.outerHTML = htmlCode;el.removeChild(el.firstChild);} else {var el_next = el.nextSibling;var el_parent = el.parentNode;el_parent.removeChild(el);el.outerHTML = htmlCode;if (el_next) {el_parent.insertBefore(el, el_next)} else {el_parent.appendChild(el);}}}setOuterHTML(nowPersonTable,dhtml);</script></body></html>参考这里http://www.uml.org.cn/AJAX/201006232.asp
解决方案二:
dhtml += "</scri";dhtml += "pt>";dhtml += "</div></td></TR></TABLE>"; nowPersonTable.outerHTML=dhtml; 其实我也赞同楼上的说法.
解决方案三:
这代码写得...不清楚意图,如果要我维护这段代码,我拍死他
解决方案四:
dhtml += "</scri"; 这里是不没拼对?