2012-08-23 43 views
3

我一直在尋找在設置this up,只是出於好奇,但是我有點困惑時,他們說這個工作,你需要:對JavaScript使用type =「text/plain」?

查找設置分析的Cookie任何JavaScript元素。示例可能包括Google Analytics和StatCounter。 修改腳本標記,這樣類型的屬性是「text/plain的」,而不是「文/ JavaScript的」

這會導致某些Web瀏覽器的任何問題?它會導致HTML不再驗證嗎?

此外,「類型」屬性是否真的有用嗎?我以前只見過它分配過「text/JavaScript」嗎?

回答

4

它不會導致問題,如果目的是使瀏覽器不解釋元素作爲腳本代碼的內容,但只是作爲文本數據不會被渲染。它的腳本可以使用它,但否則會被忽略。那麼,在一些瀏覽器中,內容可能會使用CSS來顯示,但默認情況下不會顯示。使用<script type="text/plain">是有效的HTML規範。即使<script type="Hello world ☺">也是有效的,儘管它違反了散文要求屬性值是MIME類型。這些規範沒有詳細說明它的含義,但是唯一可行的解​​釋以及瀏覽器在實踐中的做法是,它不是腳本語言,也不是腳本嘗試的執行方式。

所以type="text/plain"可用於有意阻止腳本的執行,同時仍保持它的來源。它也可能用於傳送用於某些處理的字符數據的大量數據。

type屬性可以用於這樣的目的,它也可以用來指定除JavaScript以外的腳本語言(很少使用,但在某些環境中仍可能)。使用type屬性只是爲了指定JavaScript是不需要的,並且不能被推薦:唯一可能實現的是錯誤:如果你錯誤輸入,例如type="text/javascript",內容將被視爲未知語言,因此被忽略。

+0

我可能在這裏錯過了一些非常明顯的東西(如果我是我道歉),但你已經說過「意圖是瀏覽器不會將元素的內容解釋爲腳本代碼,而只是作爲未呈現的文本數據」所以如果你這樣做了JavaScript代碼,它將不再執行? – Sean

+0

例如如果應用於谷歌分析代碼,谷歌分析將不再適用於您的網站 – Sean

+0

@SeanDunwoody - 是的,就是這一點。您不希望未經同意跟蹤的JS執行。 – Quentin

-1

"application/javascript"是什麼它必須是根據最新的w3規格。但正如預期的那樣,大多數舊版本的IE不支持這一點。所以到處使用"text/javascript"是安全的。

+0

OP詢問'text/plain',而不是'text/javascript'。 – Oded

0

這會導致某些Web瀏覽器出現問題嗎?

沒有

它會導致HTML不再驗證?

沒有

此外,沒有 「類型」 屬性,即使真的服務器的目的了嗎?

瀏覽器使用它來決定什麼解釋器運行代碼(或者如果他們應該下載外部src ed代碼)。

將其設置爲text/plain將其設置爲瀏覽器不具有解釋器的類型(因爲它不是編程語言),這就是重點。