从文件夹加载所有图像:winjs uwp app

时间:2017-06-30 05:27:27

标签: javascript jquery ajax uwp winjs

我正在使用javascript(winJS)来制作我的Windows应用商店(UWP应用)。我想从我的app目录加载所有svg图像并在div中显示它们。 我能够使用ajax请求执行此操作。但看起来像ajax在winJS UWP应用程序中不起作用。我使用了jquery和ajax请求:

var fileextension = ".svg";
var classx = "image";
var tr = "true";

var businessDir = "image/business";
$.ajax({
    url: businessDir,
    success: function (data) {
        $(data).find("a:contains(" + fileextension + ")").each(function () {
            var filename = this.href.replace(window.location.host, "").replace("http:///", "");

            $(".myDiv").append($("<img src=" + filename + " class=" + classx + " draggable=" + tr + "></img>"));

        });
    }
});

如何从winJS UWP应用程序中的'image / buisness'目录加载图像。我也在cordova windows商店应用程序中尝试了这个代码,但这也没有用。

1 个答案:

答案 0 :(得分:1)

  

但看起来像ajax在winJS UWP app中不起作用

首先,UWP应用程序支持ajax,但您需要注意一些事项,详情请参阅this thread。但是虽然可以在UWP应用程序中使用jQuery.ajax(),但是由于请求是使用HTTP进行的,因此无法对本地资源进行AJAX调用。有关详细信息,请参阅this thread

  

如何从winJS UWP应用程序中的'image / buisness'目录加载图像

根据您的方案,您需要从本地目录加载图像,这样您就无法使用AJAX调用。您可以在UWP中使用文件操作相对API来加载图像,例如Storage​FolderStorageFile类。有关如何操作的详细信息,请参阅this articlethis official sample。这是一个从WinJs UWP应用程序中的“images / bussiness”目录加载图像的演示,您可以参考:

function addimage() { 
    var classx = "image";
    var tr = "true";
    var root = Windows.ApplicationModel.Package.current.installedLocation.path;
    var path = root + "\\images\\business";
    var StorageFolder = Windows.Storage.StorageFolder;
    var folderPromise = StorageFolder.getFolderFromPathAsync(path);
    folderPromise.done(function getFolderSuccess(folder) {
        var filesInFolderPromise = folder.getFilesAsync();
        filesInFolderPromise.done(function getFilesSuccess(filesInFolder) {
            filesInFolder.forEach(function forEachFile(item) {             
                if (item.name.includes("svg")) {
                    var img = document.createElement("img");
                    img.src = "images/business/" + item.name;
                    document.getElementById("myDiv").appendChild(img);
                }
            });
        });
    });
}