2016-11-07 3 views
0

Я строю расширение кросс-браузер, и я использую JQuery для создания IFRAME в документе:MS Пограничный Iframe CSS

$iframe = $("<iframe/>"); 

$iframe.on("load", function() { 
    var font = browser.runtime.getURL("css/font.css"); 
    var style = browser.runtime.getURL("css/style.css"); 

    // on safari I use window.safari.extension.baseURI + path 

    $iframe.contents().find("head").append([ 
     "<link href='"+font+"' rel='stylesheet' type='text/css'/>", 
     "<link href='"+style+"' rel='stylesheet' type='text/css'/>", 
    ]); 
}); 

$iframe.appendTo("html"); 

Это работает в браузерах: Chrome, Firefox, Safari, Opera, но не работает в MS Край. Создается iframe, содержимое вводится. Но стиль не применяется к содержимому iframe. Это происходит только в MS Edge.

Что может быть неправильным?

ответ

1

После тщательного исследования я смог обнаружить, что существует проблема с загрузкой динамических таблиц IE и MS Edge, а при создании элемента «link» атрибут «href» должен быть добавлен последним.

Однако после многих неудачных попыток, я был в состоянии найти решение, которое работало для меня (Обратите внимание, что HREF атрибут должен быть действительно последним):

$iframe.contents().find("head").append([ 
    $("<link rel='stylesheet' type='text/css' href='"+font+"'/>"), 
    $("<link rel='stylesheet' type='text/css' href='"+style+"'/>") 
]); 

Я понятия не имею, почему это работает так ,

+0

Подано на свой трекер ошибок: для тех, кто сталкивается с такой же проблемой, пожалуйста, нажмите, чтобы сообщить о проблеме, чтобы увеличить давление: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10258970/ – reddy