Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2007, 00:59
Infinito79
 
Fecha de Ingreso: abril-2007
Mensajes: 12
Antigüedad: 17 años, 1 mes
Puntos: 0
Conservar posición scroll y validadores

Hola amigos foreros,

A través del maravilloso google encontré un javascript que a través del método onsubmit y onload del formulario te guarda y conserva la posicion de los scrolls contenidos en elementos div, hasta aquí todo bien.

Mi sorpresa reside al comprobar que al meter cualquier cosa en el onload los validadores de asp dejan de funcionar.

He probado a hacer return false cuando fuere necesario pero nada, que no va.

Alguna idea?


Este es el script en cuestión

var __oScrollPos;
window.onload=InitScrollPos;

function InitScrollPos(){
__oScrollPos = document.all['__SCROLLPOSITIONS'];
if (__oScrollPos!=undefined) {
LoadScrollPos();
basePostBack = __doPostBack;
__doPostBack = MyPostBack;
document.forms[0].onsubmit = MyPostBackFrm();
}
}

function MyPostBackFrm(){
SaveScrollPos();
return false;
//document.forms[0].submit();
}

function MyPostBack(eventTarget, eventArgument){
SaveScrollPos();
basePostBack(eventTarget, eventArgument);
}

function SaveScrollPos(){
var oNodeList = document.body.getElementsByTagName('DIV');
var sPos = '';
for (i=0;i<oNodeList.length;i++){
oDiv = oNodeList[i];
if ((oDiv.scrollTop>0)||(oDiv.scrollLeft>0)) {
if (sPos.length>0) sPos = sPos + ',';
sPos=sPos + oDiv.id + ':' + oDiv.scrollTop + '#' + oDiv.scrollLeft;
}
}
__oScrollPos.value=sPos;
}

function LoadScrollPos(){
if (__oScrollPos.value=='') return;
var sPos = new String();
sPos = __oScrollPos.value
sItems = sPos.split(',');
for (i=0;i<sItems.length;i++){
var sItem = new String();
sItem = sItems[i];
var iSplit = sItem.indexOf(":",0);
sDiv = sItem.substring(0,iSplit);
sPos = sItem.substring(iSplit+1,sItem.length);
try {
document.all[sDiv].scrollTop=sPos.substring(0,sPos.indexOf('#'));
document.all[sDiv].scrollLeft=sPos.substring(sPos.indexOf('#') + 1,sPos.length);
} catch(e) { }
}
}