我正在尋找一種非入侵性的JavaScript HTML/CSS/JS注入頁面。 我理想地使用document.write,但保留頁面上的原始內容。因此,執行以下操作:非侵入式Javascript HTML注入
javascript:document.write(「blablabla」); - 這將刪除頁面上的所有內容,我不想使用innerHTML + =來附加數據。
有什麼建議嗎?
我正在尋找一種非入侵性的JavaScript HTML/CSS/JS注入頁面。 我理想地使用document.write,但保留頁面上的原始內容。因此,執行以下操作:非侵入式Javascript HTML注入
javascript:document.write(「blablabla」); - 這將刪除頁面上的所有內容,我不想使用innerHTML + =來附加數據。
有什麼建議嗎?
document.write將總是覆蓋整個頁面,據我所知。一種選擇是將你的代碼附加/前置到一個div或你的身體的底部。
$(elementObj).append(contents);
//or
$(elementObj).prepend(contents);
您可以createElement()然後使用上述方法之一將您的代碼注入到新創建的元素中。
如果document.write在文檔的onload事件之後被調用,它需要重新打開文檔 - 有效地截斷它。雖然可以直接調用document.write()內聯(無論是直接嵌入在頁面中的javascript還是使用不使用延遲/異步的標記),但這被認爲是不好的做法,因爲它阻止了頁面的所有其他處理。
可以inject elements通過constructing them in Javascript我個人更喜歡設置的innerHTML現有的佔位符的HTML片段:
<div id='placeholder/></div>
...
document.getElementById('placeholder').innerHTML="<h2>hello world!</h2>";
(使用的createElement變得凌亂和創建時慢/注射複雜的HTML)
你不應該使用'document.write'。使用'document.createElement'來創建新的元素,使用'document.getElement *'函數來查詢你想追加的父元素。然後使用該元素的'appendChild'函數添加您的新元素。 – 2015-03-24 22:27:14
我試圖避免createElement。 – CBMC 2015-03-24 22:29:18
你爲什麼要避免'createElement'? – Mathletics 2015-03-24 22:30:13