我正在使用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商店应用程序中尝试了这个代码,但这也没有用。
答案 0 :(得分:1)
但看起来像ajax在winJS UWP app中不起作用
首先,UWP应用程序支持ajax,但您需要注意一些事项,详情请参阅this thread。但是虽然可以在UWP应用程序中使用jQuery.ajax()
,但是由于请求是使用HTTP进行的,因此无法对本地资源进行AJAX调用。有关详细信息,请参阅this thread。
如何从winJS UWP应用程序中的'image / buisness'目录加载图像
根据您的方案,您需要从本地目录加载图像,这样您就无法使用AJAX调用。您可以在UWP中使用文件操作相对API来加载图像,例如StorageFolder
和StorageFile
类。有关如何操作的详细信息,请参阅this article和this 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);
}
});
});
});
}