parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

JsHttpRequest - баг при работе во фреймах

MadCow 27.04.2011 21:27

Обнаружил баг в работе класса JsHttpRequest:
Если страница с которой запускается скрипт находится во фрейме, и ее адрес отличается от родительского, то доступ к перенной top в javascript будет ограничен.
И это ограничение приводит к появлению ошибки при запуске скрипта методом FORM. (тоесть загрузка файлов тут же отваливается)

Исправить это можно так:

В файле JsHttpRequest.js нужно заменить
top.JsHttpRequestGlobal=JsHttpRequest;
на
try{
top.JsHttpRequestGlobal=JsHttpRequest;
}
catch(e){}
А в файле JsHttpRequest.p нужно заменить
top && top.JsHttpRequestGlobal && top.JsHttpRequestGlobal.dataReady^(
на
var _JsHttpRequest^;
try{
	if(top && top.JsHttpRequestGlobal){
		_JsHttpRequest = top.JsHttpRequestGlobal
	}
}
catch(e){}

if(!_JsHttpRequest && parent && parent.JsHttpRequest){
	 _JsHttpRequest = parent.JsHttpRequest^;
}				
_JsHttpRequest && _JsHttpRequest.dataReady^(
Как-то так... )))

  • JsHttpRequest - баг при работе во фреймах, MadCow 27.04.2011 21:27