(转载)向页面某处动态添加js的方法
2009-12-08 15:29
260 查看
1、不能用innerHTML向div中写入"<script></script>"。
解决办法:
(1)在添加一个其他的html标记:obj.innerHTML="<br><script>"+scriptStr+"</script>";
(2)使用如下脚本:
var obj=document.getElementById("test");
var str="alert('xx');var a=100;document.write(a);document.write('aaaa')";
var oScript=document.createElement("script");
oScript.text=str;
obj.appendChild(oScript);
2、无法执行脚本中的document.write脚本,或者说执行时把页面内容清空了。
原因:document.write只有在加载时执行才不会清空页面内容,其他时间执行则会清空页面内容。
解决办法:既然document.write的目的就是在指定的div中写入内容,把脚本中的document.write替换为innerHTML不久ok了吗?
经过多次测试终于ok了。
<!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" xml:lang="zh-CN" lang="zh-CN">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<div id="test">
</div>
<input type="button" onclick="test()" />
<script type="text/javascript">
function addScript(id,str){
window.execScript((str+";").replace(/<\/?script[^\)]*>/ig,"").replace(/document.write\((.*?)\)[\s;]/ig,function(){
return ("document.getElementById('"+id+"').innerText+="+arguments[1]+";");
}));
}
window.onload=function(){
var id="test";
var str="alert('xx');\nvar a=100;document.write('(xxx)');document.write('aaaa')\n";
addScript(id,str)
};
</script>
</body>
来源:http://www.cnitblog.com/yemoo/archive/2007/07/19/30237.html
解决办法:
(1)在添加一个其他的html标记:obj.innerHTML="<br><script>"+scriptStr+"</script>";
(2)使用如下脚本:
var obj=document.getElementById("test");
var str="alert('xx');var a=100;document.write(a);document.write('aaaa')";
var oScript=document.createElement("script");
oScript.text=str;
obj.appendChild(oScript);
2、无法执行脚本中的document.write脚本,或者说执行时把页面内容清空了。
原因:document.write只有在加载时执行才不会清空页面内容,其他时间执行则会清空页面内容。
解决办法:既然document.write的目的就是在指定的div中写入内容,把脚本中的document.write替换为innerHTML不久ok了吗?
经过多次测试终于ok了。
<!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" xml:lang="zh-CN" lang="zh-CN">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<div id="test">
</div>
<input type="button" onclick="test()" />
<script type="text/javascript">
function addScript(id,str){
window.execScript((str+";").replace(/<\/?script[^\)]*>/ig,"").replace(/document.write\((.*?)\)[\s;]/ig,function(){
return ("document.getElementById('"+id+"').innerText+="+arguments[1]+";");
}));
}
window.onload=function(){
var id="test";
var str="alert('xx');\nvar a=100;document.write('(xxx)');document.write('aaaa')\n";
addScript(id,str)
};
</script>
</body>
来源:http://www.cnitblog.com/yemoo/archive/2007/07/19/30237.html
相关文章推荐
- Js为表单动态添加节点内容的方法
- jquery getScript动态加载JS方法改进详解[转载]
- jQuery页面元素动态添加后绑定事件丢失方法,非 live
- 常用js跳转页面方法大全,onClick,history,location <转载篇>
- ASP.NET给前端动态添加修改 CSS样式JS 标题 关键字(转载)
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- 接上一篇,在cs文件中往页面动态添加meta标签时出现“控件包含代码块(即 ),因此无法修改控件集合”错误的解决方法
- js动态给table添加/删除tr的方法
- asp.net登录页面验证(js方法)【转载】
- Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法
- asp.net动态添加js文件调用到网页的方法
- JS中常用操作技巧(页面动态增加div,contain方法扩展,JSON对象鱼字符串转换)
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- JS 监控页面刷新,关闭 事件的方法(转载)
- js动态取页面元素位置的方法
- JS动态修改页面EasyUI datebox不生效、EasyUI动态添加Class、EasyUI动态渲染解析解决方案
- js动态添加的div点击跳转到另一页面
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- JS生成动态表格并为每个单元格添加单击事件的方法
- 谷歌调试动态加载页面中的js的方法