как да промените динамично 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
да, изображението съществува с ID. Но 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