MS Edge Iframe CSS
MS Edge Iframe CSS
我正在构建跨浏览器扩展,我正在使用 jQuery 在文档中创建 iframe:
$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 Edge。创建 iframe,注入内容。但该样式未应用于 iframe 内容。这仅发生在 MS Edge 中。
有什么问题吗?
经过深入研究,我发现 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+"'/>")
]);
我不知道为什么会这样。
我正在构建跨浏览器扩展,我正在使用 jQuery 在文档中创建 iframe:
$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 Edge。创建 iframe,注入内容。但该样式未应用于 iframe 内容。这仅发生在 MS Edge 中。
有什么问题吗?
经过深入研究,我发现 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+"'/>")
]);
我不知道为什么会这样。