在script所在位置插入内容
上一篇文章document.write()的一些坑說了瀏覽器輸出流關(guān)閉后使用document.write會清空當(dāng)前頁面,因此要避免在window.onload、$(document).ready()和ajax獲取數(shù)據(jù)后使用document.write插入內(nèi)容。但是這些常用操作又是很難避免的,那么在使用上述三種方法的時(shí)候能不能達(dá)到document.write()同樣的效果呢?
其實(shí)是可以的實(shí)現(xiàn)的,我們知道js中除了可以用docuemnt.write插入內(nèi)容,還可以使用appendChild,利用appendChild向子節(jié)點(diǎn)末尾插入新節(jié)點(diǎn)的特性,我們可以獲取包含當(dāng)前script節(jié)點(diǎn)的父元素,然后添加到子節(jié)點(diǎn)末尾。由于頁面正在加載中,此時(shí)添加的子節(jié)點(diǎn)會在當(dāng)前script節(jié)點(diǎn)后面。那么這里的重點(diǎn)就是獲取包含當(dāng)前js的父元素,不過在js中貌似沒有直接的辦法獲取父元素,這里可以使用一個(gè)比較巧妙的辦法。執(zhí)行當(dāng)前js時(shí),文檔流正加載到當(dāng)前script節(jié)點(diǎn),那么它必然是文檔中最后一個(gè)節(jié)點(diǎn),通過獲取文檔中的script節(jié)點(diǎn),然后取最后一個(gè)節(jié)點(diǎn)即時(shí)當(dāng)前script節(jié)點(diǎn)。獲取了script節(jié)點(diǎn)后,只有直接使用parentNode就能獲取它的父元素,貼下這段代碼:
var script = document.getElementsByTagName("script"),len = script.length,parent = script[len-1].parentNode;parent.appendChild(childNode);轉(zhuǎn)載于:https://www.cnblogs.com/cuixi/p/4201114.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的在script所在位置插入内容的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 之常用接口
- 下一篇: Clojure语法学习-循环