主题
动态脚本和动态样式
动态脚本
- 动态插入一个脚本
js
function loadScript(url) {
const script = document.createElement('script')
script.src = url
document.body.appendChild(script)
}
- 动态执行一段代码,其会立即生效,相当于调用 eval
js
function loadScriptString(code) {
var script = document.createElement('script')
script.type = 'text/javascript'
try { // 除 IE 外的浏览器
script.appendChild(document.createTextNode(code))
} catch() { // IE 浏览器
script.text = code
}
document.body.appendChild(script)
}
通过 innerHTML 属性创建的
<script>
元素永远不会执行
动态样式
- 动态插入一个外部 css
js
function loadStyles(url) {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.type = 'text/css'
link.href = url
const head = document.getElementsByTagName('head')[0]
head.appendChild(link)
}
- 动态设置样式,其会立即生效
js
function loadStyleString(css) {
const style = document.createElement('style')
style.type = 'text/css'
try { // 除 IE 外的浏览器
style.appendChild(document.createTextNode(css))
} catch() { // IE 浏览器
style.styleSheet.cssText = css
}
const head = document.getElementsByTagName('head')[0]
head.appendChild(style)
}