2015-03-24 98 views
-2

我正在尋找一種非入侵性的JavaScript HTML/CSS/JS注入頁面。 我理想地使用document.write,但保留頁面上的原始內容。因此,執行以下操作:非侵入式Javascript HTML注入

javascript:document.write(「blablabla」); - 這將刪除頁面上的所有內容,我不想使用innerHTML + =來附加數據。

有什麼建議嗎?

+0

你不應該使用'document.write'。使用'document.createElement'來創建新的元素,使用'document.getElement *'函數來查詢你想追加的父元素。然後使用該元素的'appendChild'函數添加您的新元素。 – 2015-03-24 22:27:14

+0

我試圖避免createElement。 – CBMC 2015-03-24 22:29:18

+2

你爲什麼要避免'createElement'? – Mathletics 2015-03-24 22:30:13

回答

-2

document.write將總是覆蓋整個頁面,據我所知。一種選擇是將你的代碼附加/前置到一個div或你的身體的底部。

$(elementObj).append(contents); 
//or 
$(elementObj).prepend(contents); 

您可以createElement()然後使用上述方法之一將您的代碼注入到新創建的元素中。

-1

如果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)