Проблема на десятой строке.
Приложение (
опрос) при переходе на другую страничку проверяет, есть ли она в кэше и либо подгружает либо показывает. Прячет предыдущую страничку нормально, но действия с уже имеющимися ранее дивами производятся не отражаясь в реальном DOM, свойства меняются только у элементов хэша.
Как будто при сохранении они передаются по ссылке и после изменения связь с реальной страничкой обрывается.
Яндекс с Гуглом на эту тему говорят что DOM элементы передаются только по ссылке, чтоб клонировать их нужно вызывать соответствующую функцию. А тут это происходит самопроизвольно.
Наблюдается во всех браузерах.
this.go_page = function(url) {
params = url.split('?')[1];
if (!params) {params = 'page='+(this.page+1);}
params+=('&id='+this.id);
var to_page = params.match(/page\=(\d+)/i)[1];
if (this.cashe[this.lang]['page_'+to_page]!=undefined) {
var prev = this.cashe[this.lang]['page_'+this.page];
prev.style.display = 'none';
var curr = this.cashe[this.lang]['page_'+to_page];
curr.style.display = 'block';
this.page = to_page;
self.updatePos();
} else {
new azsrw_Request(params, function(response) {
var prev = self.cashe[self.lang]['page_'+self.page];
var container = document.getElementById(self.opts.ns+'survey_'+self.id);
prev.style.display = 'none';
container.innerHTML+=response.match(/(\<div class\=\"azsw\-content\"\>[\s\S]*\<\/div\>)[\s\S]*\<\/div\>/)[1];
self.page = this.params.page;
var pages = [];
var subdivs = container.childNodes;
for (var i=0; i<subdivs.length; i++) {
if (subdivs[i].nodeType==1) if (subdivs[i].tagName.toLowerCase()=='div') {
pages.push(subdivs[i]);
}
}
self.cashe[self.lang]['page_'+self.page] = pages[pages.length-1];
var curr = self.cashe[self.lang]['page_'+self.page];
self.paginator(curr);
self.updatePos();
});
}
}