Windows 8 来自本地存储的WinJS css文件
这一问题的后续行动: 因此,是的,Windows说“出于安全原因,您不能导航到下载到此位置的HTML,也不能运行任何可执行或潜在可执行代码,如脚本或CSS。它适用于图像或视频等媒体。” 但是我真的,真的想使用本地存储中的css文件。难道我不能像这样使用来绕过这个限制吗Windows 8 来自本地存储的WinJS css文件,windows-8,windows-store-apps,winjs,Windows 8,Windows Store Apps,Winjs,这一问题的后续行动: 因此,是的,Windows说“出于安全原因,您不能导航到下载到此位置的HTML,也不能运行任何可执行或潜在可执行代码,如脚本或CSS。它适用于图像或视频等媒体。” 但是我真的,真的想使用本地存储中的css文件。难道我不能像这样使用来绕过这个限制吗 MSApp.execUnsafeLocalFunction(function () { el["href"] = "ms-appdata:///local/style.css" }
MSApp.execUnsafeLocalFunction(function () {
el["href"] = "ms-appdata:///local/style.css"
});
它仍然抛出“应用程序无法在本地上下文中加载远程web内容。”
我还尝试使用localFolder.getFileAsync和readText读取文件,但似乎没有任何帮助。真的没有办法解决这个问题吗?我想我找到了加载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);
});
});
是的,这正是动态加载CSS的方法:将它附加到DOM中的文档中。通过在文档头中创建元素,可以对包内文件执行类似的操作。sam策略也可以卸载CSS——删除DOM中的or元素,CSS就会被卸载。谢谢,getFileFromApplicationUriAsync做到了这一点!由于某种原因,附加到文档中不起作用,但替换link元素的cssText起作用。这对我不起作用。加载的样式在DOM资源管理器中都无效
body{background color:white;}
显示格式错误background color:white:
似乎innerText无法正确处理我的CSS文件中的\r\n
。