如果我點通過瀏覽器(上OSX Chrome或Safari)這個網站,它顯示了所有SVG完美:
現在,如果我在該網頁上查看源代碼,複製,並將其粘貼到桌面上的新HTML文檔中,然後使用任一瀏覽器查看該文檔,我根本沒有收到SVG。
爲什麼區別?
爲什麼SVG在網站上工作,但不在本地HTML文件中工作?
謝謝!
如果我點通過瀏覽器(上OSX Chrome或Safari)這個網站,它顯示了所有SVG完美:
現在,如果我在該網頁上查看源代碼,複製,並將其粘貼到桌面上的新HTML文檔中,然後使用任一瀏覽器查看該文檔,我根本沒有收到SVG。
爲什麼區別?
爲什麼SVG在網站上工作,但不在本地HTML文件中工作?
謝謝!
你把它改名爲HTML,瀏覽器呈現HTML內容..而頁面text/xml
..
如果其重命名爲.xml
並打開它,你會看到它就好了..
的HTTP響應報頭信息,使瀏覽器解釋信息的XML:
HTTP/1.1 200 OK
Date: Sun, 21 Feb 2010 02:32:02 GMT
Server: Apache/2.2.14 (Debian)
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/xml; charset=UTF-8
你看,那擔任了該網頁的服務器是足夠聰明來檢測,這是一個XML文件,並告訴瀏覽器。當您從磁盤加載文件時,您的瀏覽器可能不夠聰明,無法做到這一點,並傾向於依賴文件的擴展名來提供此信息。
你可以嘗試插入下面的進<head>
元素:
<meta http-equiv="Content-Type" content="text/xml; charset=UTF-8" />
你看我做什麼呢?它只是HTTP響應頭的鏡像,它將指定文檔類型和編碼。
這個標籤的目的是讓瀏覽器想:「嘿,服務器告訴我這個文檔是HTML,但是文檔告訴我它是XML,這個文檔可能比服務器知道得更好,會信任它...... ::解釋爲XML ::「
應該是這種情況,但不幸的是它不是..它仍然不會正確渲染.. – 2010-02-21 03:46:20
不幸的是,加比是正確的。它不起作用。 你已經想出了一個優雅的解決方案Amphetamachine,但瀏覽器忽略它。 令人沮喪。 – Axeva 2010-02-21 20:33:30
瀏覽器=愚蠢 – amphetamachine 2010-02-21 23:41:37
確認。在Mac OS X 10.6.2 – pestilence669 2010-02-21 02:10:40
上使用此方法轉載並修復。 所有的HTML5文檔都應該具有.xml擴展名,還是僅僅是文檔中具有SVG的功能? – Axeva 2010-02-21 03:08:34
我只是玩了一下,似乎FF和Chrome都使用'.xhtml'擴展名來渲染正確......看起來很明顯,他們不會接受來自文件內部的內容定義(例如元標記..),但它似乎是這種情況.. – 2010-02-21 03:53:41