添加javascript脚本:
如果要添加以下脚本到DOM文档页面中:
<script type="text/javascript"> function sayHi(){ alert("hi"); } </script>
运用DOM节点操作的知识,我们可能会这样写:
var script = document.createElement('script'); script.type = 'text/javascript'; script.appendChild(document.createTextNode('function sayHi(){alert("hi");}')); document.body.appendChild(script);
上述代码在除IE外的浏览器都可以正确运行,但是,对于IE来讲,script元素是比较特别的,因此不允许访问它的子节点。
修改后的代码如下:
var script = document.createElement('script'); script.type = 'text/javascript'; var code = 'function sayHi(){alert("hi");}'; try{ script.appendChild(document.createTextNode(code)); }catch(ex){ script.text = code;//this works in all browers. } document.body.appendChild(script);
在文档添加css代码也有类似的情况:
<style type="text/css"> body { background-color: red; } </style>
实现的代码应该如下:
var style = document.createElement('style'); style.type = 'text/css'; var cssText = "body{background-color:blue;}"; try{ style.appendChild(document.createTextNode(cssText)); } catch (ex){ style.styleSheet.cssText = cssText;//IE } var head = document.getElementsByTagName('head')[0]; head.appendChild(style);
整理自<<Professional.JavaScript.for.Web.Developers.2nd.Edition>>