跟进这个问题: apply downloaded CSS on windows 8 metroUI app
所以,是的,Windows说"出于安全原因,您无法导航到已下载到此位置的HTML,并且无法运行任何可执行文件或可能的可执行代码,例如脚本或CSS。它适用于图像或视频等媒体。"
但我真的非常想从本地存储中使用该css文件。难道我不能像execUnsafeLocalFunction method一样绕过这个限制吗?:
MSApp.execUnsafeLocalFunction(function () {
el["href"] = "ms-appdata:///local/style.css"
});
它仍会引发"应用程序无法在本地环境中加载远程Web内容。" 我也尝试用localFolder.getFileAsync和readText读取文件,但似乎没有任何帮助。有没有办法解决这个问题?
答案 0 :(得分:3)
我想我找到了一种方法来加载CSS。
我通过添加一个css文件来测试下面的代码,该文件在本地存储文件夹中将正文背景设置为红色。
代码读取文件的内容,在头部创建样式标记,并将css文件的内容添加到样式中。
var url = new Windows.Foundation.Uri(filename);
Windows.Storage.StorageFile.getFileFromApplicationUriAsync(url).then(function (file) {
Windows.Storage.FileIO.readTextAsync(file).then(function(text) {
var style = document.createElement("style");
style.innerText = text;
document.getElementsByTagName("head")[0].appendChild(style);
});
});