2014-02-10 44 views
3

我有一個關於這個例如一個相當具體的IE9的問題(但在這裏它只是指IE8及以下)IE8 web font iframe bug workaroundsCSS相對的HREF和iframe中的IE9

我有iframe內的iFrame像這樣

Top page 
-- iframe1.html 
-- -- iframe2.html 
-- -- -- iframe3.html 

iframe 2是由iframe1動態加載的。我也有在這種方式編碼字體的fonts.css樣式表:

src:url(data:font/opentype;base64, /*FONT HERE */ 

是毗鄰iframe1的文件夾中

/%folder_with_top_page%/%folder with iframe1.html%/style/fonts.css 

iframe2.html加載不同於fonts.css文件文件夾:

<link rel="stylesheet" type="text/css" href="../style/fonts.css" /> 

而這也與其他瀏覽器就好了,除了在IE9結果如下:

page loads 
page flashes with correct fonts 
page reverts to New Times Roman/default serif font 

綜觀開發工具網絡選項卡中的IE9則說明該瀏覽器試圖加載的字體從根文件夾:

404 %folder_with_top_page%/style/fonts.css 

一切工作就好了,如果我還放置fonts.css文件在那裏,但似乎沒有必要。在%folder_with_iframe3.html%/ style/fonts.css中還有一個名爲fonts.css的文件,加載得很好,似乎與第一個鏈接中描述的問題有關,但我認爲問題在> IE9中修復了?我知道頁面結構在任何情況下都不是最佳的,但不是由我來改變它。

我的問題如下:

1)在我張貼的鏈接,但在IE9,而不是描述這是同樣的問題? 2)哪一種解決方法最有意義:只要將字體文件插入「正確」(=錯誤,root-ish)文件夾,將fonts.css文件放在與加載它的文件相同的級別(也就是將文件複製到%folder_with_iframe2.html%/ style/fonts.css)或其他內容(例如在站點加載後使用jQuery將CSS再次附加到頁面)。

該行爲僅在iframe發生時纔會發生,但不會在單獨加載頁面時發生。

回答

-1

我只是偶然發現了這篇文章,同時診斷了一個嵌入式iframe試圖用相對鏈接加載樣式表的類似問題,並且請求轉到了外部頁面。爲了解決這個問題,我將鏈接標籤附加到DOM,然後用JS設置href屬性。

var cssLink = "<link rel='stylesheet' type='text/css' id='addcss'/>"; 
$('head').append(cssLink); 
$('#addcss').attr('href', src); 

我能夠包括在最初的代碼中href時重現該問題持續,且無法實施此修復程序後重現。