高手帮我看看,我这种写法为何ie不兼容?

千游 2010-01-26 03:24:04

aa.js:

function test(){
var aa= "<script>alert(11);</script>";
var insertInto = document.getElementById('input');
var insertDiv = document.createElement('div');
insertDiv.innerHTML= aa;
insertInto.appendChild(insertDiv);
}



<script src="aa.js"></script>
<span id = "input">aaaaa</span>
<input type = "button" value = "test" onclick = "test();"/>


需求就是将含有一个函数的aa拼接到页面
ff下可以alert出来,ie7下不行,为什么?怎么解决?
...全文
168 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
千游 2010-01-26
  • 打赏
  • 举报
回复
6楼的方法
在insertInto.appendChild(insertDiv); 这句之前alert
4楼的方法
在 document.body.appendChild(script); apend之后alert
问题基本解决了,谢谢各位

andensy 2010-01-26
  • 打赏
  • 举报
回复
看明白了一些!
浪尖赏花 2010-01-26
  • 打赏
  • 举报
回复
function test(){
var insertInto = document.getElementById('input');
var insertDiv = document.createElement('div');
var s = document.createElement("script");
s.text="alert(11);";
insertDiv.appendChild(s);
insertInto.appendChild(insertDiv);
alert(insertInto.innerHTML)
}
真哥哥 2010-01-26
  • 打赏
  • 举报
回复
oh,no偶的分.....
yixianggao 2010-01-26
  • 打赏
  • 举报
回复
在字符串中拼接标记的做法非常不可取,
结构与内容相混合,代码不易维护,而且非常容易出错!


Web 开发常用手册

JScript语言参考.rar
http://download.csdn.net/source/308916

DHTML参考手册.rar
http://download.csdn.net/source/308913

样式表中文手册.chm
http://download.csdn.net/source/304124
孟子E章 2010-01-26
  • 打赏
  • 举报
回复
<body>
<span id="input">aaaaa</span>
<input type="button" value="test" onclick="tesxt()"/>
<script>
function tesxt() {
var aa = "<span style='display:none'>Bug</span><script defer>alert(11);</sc" + "ript>";
var insertInto = document.getElementById('input');
var insertDiv = document.createElement('div');
insertDiv.innerHTML = aa;
insertInto.appendChild(insertDiv);
}
</script>
eduyu 2010-01-26
  • 打赏
  • 举报
回复
没用的,ie不执行innerHTML中的js,innerHTML不是w3c标准,有差异是正常的。
yixianggao 2010-01-26
  • 打赏
  • 举报
回复
L@_@K
<!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>
<title>Test Page</title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<style type="text/css">

</style>
<script type="text/javascript">
<!--
function test(){
var aa= "alert(11);";
var script = document.createElement('script');
script.text = aa;
document.body.appendChild(script);
}
//-->
</script>
</head>

<body>

</body>
<script type="text/javascript">
<!--
test();
//-->
</script>
</html>
sohighthesky 2010-01-26
  • 打赏
  • 举报
回复

var aa= "<script>alert(11);</"+"script>"; //script标签中不允许出现script标签,所以需要用字符串连接
duwa789 2010-01-26
  • 打赏
  • 举报
回复
另:
var aa= "<script>alert(11);</script>"; 

是不是应该写成
var aa= "<script>alert(11);<\/script>"; 

duwa789 2010-01-26
  • 打赏
  • 举报
回复
不知为什么,一起等大牛回答。。。

不过这样可以解决。


<html>
<head>

<script language="javascript">
function test() {
var aa = "alert(11);";
var insertInto = document.getElementById('input');
var insertDiv = document.createElement('div');
insertDiv.innerHTML = eval(aa);
insertInto.appendChild(insertDiv);
}
</script>

</head>
<body>
<span id="input">aaaaa</span>
<input type="button" value="test" onclick="test();" />
</body>
</html>

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧