in deltaspike/modules/jsf/impl/src/main/resources/META-INF/resources/deltaspike/windowhandler.js [270:310]
storeWindowTree : function() {
dswh.utils.log('--- #storeWindowTree');
// first we store all CSS we also need on the intermediate page
var headNodes = document.getElementsByTagName("head")[0].childNodes;
var oldSS = new Array();
var j = 0;
for (var i = 0; i < headNodes.length; i++) {
var tagName = headNodes[i].tagName;
if (tagName
&& dswh.utils.equalsIgnoreCase(tagName, "link")
&& dswh.utils.equalsIgnoreCase(headNodes[i].getAttribute("type"), "text/css")) {
// sort out media="print" and stuff
var media = headNodes[i].getAttribute("media");
if (!media
|| dswh.utils.equalsIgnoreCase(media, "all")
|| dswh.utils.equalsIgnoreCase(media, 'screen')) {
oldSS[j++] = headNodes[i].getAttribute("href");
}
}
}
localStorage.setItem(window.name + '_css', dswh.utils.stringify(oldSS));
var body = document.getElementsByTagName("body")[0];
localStorage.setItem(window.name + '_body', body.innerHTML);
var attributes = {};
for (var i = 0; i < body.attributes.length; i++) {
var attribute = body.attributes[i];
attributes[attribute.name] = attribute.value;
}
localStorage.setItem(window.name + '_bodyAttributes', dswh.utils.stringify(attributes));
var scrollTop = (window.pageYOffset || document.documentElement.scrollTop) - (document.documentElement.clientTop || 0);
localStorage.setItem(window.name + '_scrollTop', scrollTop);
var scrollLeft = (window.pageXOffset || document.documentElement.scrollLeft) - (document.documentElement.clientLeft || 0);
localStorage.setItem(window.name + '_scrollLeft', scrollLeft);
},