2011-09-27 91 views
0

我試圖改變我的HTML文件。請參閱this以更好地瞭解我所做的事情。使用原生JavaScript動態更改HTML源代碼?

每件事情都可以正常工作,但是當我查看源代碼時並沒有改變。我試圖做的改變只反映在我在瀏覽器上打開的網頁上。

難道可以通過任何方式改變HTML頁面的實際來源嗎?

我正在使用IE8和GreaseMonkey4IE在我想操縱的網頁上運行我的JavaScript,以防萬一您有興趣。

還有一個類似的問題here。但我的本地存儲中有我的HTML文件。沒有服務器端 - 客戶端技術。

編輯1

嗯,我已經安裝Tomcat的,但它是所有在我的本地機器。
另外,如果我可以修改DOM不能將其另存爲一個新的HTML文件,這樣我就不必亂用原始源文件。

這就是我們怎麼做in firefox。在IE8中必須有一些方法來做到這一點。

EDIT 2
現在是在HTML頁面沒有任何幀工作的罰款。但是當我在帶有框架的頁面上嘗試這些時,它不起作用。它肯定會殺死我。 也許這是因爲框架訪問其他HTML頁面。例如:

<frameset rows="95,*" frameborder="NO" framespacing="0" border="0" marginwidth="0" marginheight="0"> 
    <frame name="title" target="content" src="Strategy%20Details.asp_files/title.htm" scrolling="NO"> 
<frameset cols="168,*"> 
    <frame name="navigation" noresize="noresize" width="168" target="content" src="Strategy%20Details.asp_files/navigation.htm"> 
    <frame name="content" noresize="noresize" src="Strategy%20Details.asp_files/home.htm"> 
</frameset> 
</frameset> 



如何看幀訪問在SRC屬性的HTML頁面。

任何想法???

+4

源是源,DOM是DOM。除了使用編輯器之外,您無法更改源代碼。 –

+1

它被稱爲「源」的原因。 – kapa

+0

雖然我在tomcat上部署文件,但是因爲greasemonkey4IE需要一個域來應用javascript on。這就是爲什麼我無法更改源代碼? – EMM

回答

3

您應該能夠使用IE Developer Tools查看動態更改。

當您查看源代碼時,該頁面會顯示從服務器傳送的源代碼,而不會在事後做出任何更改。 IE開發者工具(或Firefox中的Firebug或Opera中的Dragonfly)可以讓你動態地看到變化(並且會在變化發生時突出顯示!)

+0

但是element.value =「」;如果我已將值更改爲空白並且我的瀏覽器顯示該值,我應該不能使用新名稱保存該文件。 – EMM

+0

@mohit您可能可以將DOM作爲HTML(如使用Firebug或同等版本)並保存。但不清楚你認爲你會節省什麼。 –

+0

@Dave是IE8的螢火蟲等效物。 – EMM

0

編輯:不,沒有辦法,至少不是沒有檢查源沒有螢火蟲。

0

這是不可能的。我想這取決於瀏覽器,但是當你請求頁面源時,他們通常會再次執行請求,或者使用原始源的緩存結果(很明顯,在客戶端操作之前,它只存在並且在你的中有意義在頁面的視圖瀏覽器),所以你得到你的源代碼(在這種情況下,在本地存儲的HTML文件)。

1

如果我理解你正確,你想改變硬盤上HTML文件的內容?這不可能使用JS,也不管HTML文件在哪裏(本地機器或不是),總是有一個服務器端和客戶端。基本上你的操作系統是作爲服務器(爲你提供HTML),你的瀏覽器仍然是只是一個客戶端,沒有更多的權利,如果你在網頁上的頁面。

這聽起來像你應該尋找某種服務器技術,允許動態網頁,如PHP,JSP,服務器端JS或其他任何一種。

1

因此,從使用Firefox瀏覽你正在做的事情來看,你不希望javsctipt進行保存,只需使用腳本修改DOM就可以在IE中保存更改的HTML表示。

在IE中,使用IE開發人員工具。按f12。如果您操作了DOM,請單擊開發人員工具中的刷新圖標。然後點擊保存圖標。

+0

ohh ..似乎你只是晚了幾秒鐘,但這絕不會減少你的努力。 – EMM

相關問題