Подгруженный в IE JS-код не видит функции
Ситуация: есть основная страница 1.html, в которой в script определена функция test:
function test() {alert(10);}
Страница отправляет ajax-запрос по адресу 2.html, подгружая её содержимое. В странице 2.html есть следующее:
<script type='text/javascript'>test();</script>
т.е. кусок кода, подгруженный аяксом, вызывает функцию, определенную в родителе. В опере и FF - Все работает. В IE - ругается, что функция test не определена.
Отправкой ajax-запроса занимается мой класс ajaxRequest. Когда он получает ответ от сервера, то обрабатывает его функцией, выполняющей все js-коды. Но, видимо, что-то тут не так работает...
ajaxRequest.prototype.workLoadedText = function(text,container)
{
try {
var element = document.getElementById(container);
if ( element != null )
{
var matchAllInline = new RegExp('<script[^>]*>([\\S\\s]*?)<\/script>', 'img');
var matchAllSrc = new RegExp('<script src=[\'|"]([^\'"]*?)[\'|"][^>]*>([\\S\\s]*?)<\/script>', 'img');
var stripScripts = function(text)
{
while ( (matched = matchAllInline.exec(text)) != null )
{
try {
text = text.replace(matched[1],'');
} catch(err) { alert('Java eval error ('+err.number+'): '+err.description); }
}
};
var extractScripts = function(text)
{
while ( (matched = matchAllSrc.exec(text)) != null ) $.getScript(matched[1]);
while ( (matched = matchAllInline.exec(text)) != null )
{
try {
/*window.eval(matched[1]);*/
window.eval.call(window,matched[1]);/*window.eval(matched[1]);*/
} catch(err) { alert('Java eval error ('+err.number+'): '+err.description); }
}
};
element.innerHTML = text;
extractScripts(text);
} else alert('Элемент с id='+container+' не был найден в теле документа.');
} catch (err) { alert(err); }
}
|