来自本地存储的WinJS css文件

时间:2014-06-25 14:03:50

标签: windows-8 windows-store-apps winjs

跟进这个问题: 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读取文件,但似乎没有任何帮助。有没有办法解决这个问题?

1 个答案:

答案 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);

    });
});