как динамически изменить src тега img в приложении winjs

Я разрабатываю приложение для магазина Windows 8 с использованием HTML5/JavaScript. Выглядит просто, но я не могу динамически изменить src тега изображения.

Я пытаюсь связать изображение в локальном хранилище, а затем динамически изменить его на другое изображение в локальном хранилище при каком-то событии.

вот мой HTML-код и в коде javascript для события я пытаюсь обновить атрибут src.

<img class="peopleitem-image" id="profilePicture" src="ms-appdata:///local/ProfilePicture.jpg">

WinJS.UI.processAll().done(function () {
    document.getElementById("profilePicture").src = "ms-appdata:///local/ProfilePicture1.jpg";
});

есть ли что-то, что я упускаю..


person Dinesh    schedule 09.06.2014    source источник
comment
За исключением странного URL-адреса, именно так вы изменяете свойство .src изображения. Вы уверены, что изображение существует и имеет id="profilePicture" и находится в вашем текущем документе?   -  person jfriend00    schedule 09.06.2014
comment
да, изображение существует с идентификатором. Но URL-адрес — это то, как мы указываем ресурс в локальном локальном хранилище в приложениях Win8 Store.   -  person Dinesh    schedule 09.06.2014
comment
Код выглядит правильно, используя ms-appdata:///local/. Правильно ли отображается первое изображение, прежде чем вы попытаетесь его изменить? (Также убедитесь, что элемент img является самозакрывающимся, то есть имеет /› в конце.) Следует отметить, что при первой установке приложения его /local appdata будет пустым, поэтому любая декларативная ссылка в HTML на ms-appdata :///local/ ничего не разрешит, пока вы не создадите этот файл изображения программным путем.   -  person Kraig Brockschmidt - MSFT    schedule 09.06.2014
comment
спасибо Крейг. Да, первое изображение загружается правильно. Однако я изменил img на div и динамически установил фон, и теперь он работает нормально. Спасибо вам. var url = ms-appdata:///local//DefaultPicture1.jpg; url = {путь: url(' + url + ')}; var personDiv = element.querySelector(#divProfileImage); WinJS.Binding.processAll(personDiv, url); ниже приведен код.   -  person Dinesh    schedule 10.06.2014


Ответы (1)


вы можете динамически установить изображение с помощью jquery ниже.

$("#profilePicture").attr({ "src": "your path" });
person Mihir Joshi    schedule 09.06.2014
comment
Обычная практика здесь, в SO, заключается в том, что вы не предлагаете ответ, используя jQuery или любую другую библиотеку, если эта библиотека специально не упомянута в OP. Кроме того, то, что вы предлагаете здесь, не делает ничего лучше, чем простой код JS, который уже есть у OP, поэтому jQuery здесь также не предлагает уникальной ценности. - person jfriend00; 09.06.2014