coos.$script 动态插入脚本并执行的方法
程序员文章站
2022-07-14 20:17:37
...
/** |
* 动态插入脚本并执行 |
* @param scriptStr |
* @param el dom元素对象或ID 可以不传入 |
* @exsample coos.$script("<script>alert(2);<\/script>"); |
*/ |
coos.$script = function(scriptStr,el) |
{ |
var el = coos.$obj(el); |
if(!el){ |
var div = coos.$create("div"); |
div.style.display = "none"; |
coos.$append(document.body,div); |
el = div; |
} |
if(coos.browser.msie){ |
scriptStr = '<div style="display:none">ie</div>' + scriptStr; |
//当节点被移除的时候,ie会重新解析节点内部的html,有脚本则会执行相关的脚本,script要加上defer属性 |
scriptStr = scriptStr.replace(/<script([^>]*)>/gi,'<script$1 defer>'); |
el.innerHTML = scriptStr; |
el.removeChild(el.firstChild); |
}else{ |
var el_next = el.nextSibling; |
var el_parent = el.parentNode; |
el_parent.removeChild(el); |
el.innerHTML = scriptStr; |
if (el_next) { |
el_parent.insertBefore(el, el_next); |
}else { |
el_parent.appendChild(el); |
} |
} |
};
源码请看coos脚本库 |
http://code.google.com/p/coos/source/browse/trunk/coos/WebRoot/scripts/labs/base/coos.ext.%24.js
测试页面
<html> |
<head> |
<title>test_$</title> |
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> |
<script type="text/javascript" src="../scripts/coos.js"></script> |
</head> |
<body> |
<div>test_$ page</div> |
<script type="text/javascript"> |
coos.$script("<script>alert(2);<\/script>"); |
</script> |
</body> |
</html> |
推荐阅读
-
jQuery+ajax实现动态执行脚本的方法教程
-
JS动态插入脚本和插入引用外部链接脚本的方法
-
coos.$script 动态插入脚本并执行的方法
-
coos.$script 动态插入脚本并执行的方法
-
jQuery+ajax实现动态执行脚本的方法教程
-
【面试题】你用什么方法检查 PHP 脚本的执行效率(通常是脚本执行时间)和数据库 SQL 的效率(通常是数据库 Query 时间), 并定位和分析脚本执行和数据
-
【面试题】你用什么方法检查 PHP 脚本的执行效率(通常是脚本执行时间)和数据库 SQL 的效率(通常是数据库 Query 时间), 并定位和分析脚本执行和数据
-
JS动态插入脚本和插入引用外部链接脚本的方法
-
jQuery+ajax实现动态执行脚本的方法_jquery
-
JS动态插入并立即执行回调函数的方法_javascript技巧