Здравствуйте!
Мне надо узнать как выполнить досрочный выход из сценария javascript заключенного в <script></script>. Поясняю наглядно:
<script>//скрипт1
...
//что тут надо вставить, чтобы управление перешло на скрипт2, а дальнейшие инструкции в скрипте1 не выполнялись?
...
</script>
<div>Здесь не содержится никаких скриптов.</div>
<script>//скрипт2
//Сюда нам надо попасть!!!!!!
.....
</script>
Спросите зачем мне нужно чтобы не выполнялись дальнейшие инструкции в первом скрипте - отвечаю: я реализую функцию вставки в скрипт, причем ни абы какую, а с возможностью вставлять целые массивы скриптов и прочих DOM элементов вот собственно функция:
//функция разрывает скрипт и вставляет что угодно в разрыв
// i - число-идентификатор вставки(для нахождения), е - то что надо встваить
include=function(i,e)
{
//находим элемент текущего скрипта
var scr=document.getElementsByTagName('SCRIPT');
scr=scr[scr.length-1];
var s= scr.innerHTML;//получаем код скрипта
var pos= s.indexOf("include("+i+",");//ищем место вставки по идентификатору
var end =s.indexOf(");",pos);//конец инструкции вставки
var pre=s.substr(0,pos);//код до инструкции вставки
var post=s.substr(end+2);//код после инструкции вставки
scr.innerHTML=pre;//прежний скрипт в DOM обрезаем слева до встваки
var par=scr.parentNode;//родительский объект где текущий скрипт
if(typeof(e)=='string')//скрипт заданный одной строкой
{
var el=document.createElement('SCRIPT');//создаем элемент скрипта
el.setAttribute('src',e); par.appendChild(el);//указываем URI и вставляем после первого скрипта
}else if(e.length){//массив надо много элементов засунуть
for(var i=0; i<e.length; i++)//для каждого элемента
{
var zn=e[i];//текуший элемент
if(typeof(zn)=='string'){//элемент является скриптом
var el=document.createElement('SCRIPT');
el.setAttribute('src',zn); par.appendChild(el);
}else{////DOM объект
par.appendChild(zn);
};
};
}else{//DOM объект который надо вставить
par.appendChild(e);
};
var scr2=document.createElement('SCRIPT');//оставшуюся часть скрипта вставляем потом
scr2.innerHTML=post;//заполняем оставшейся частью
par.appendChild(scr2);//вставляем в конец родительского объекта
//вот здесь надо написать досрочный выход из scr(изначальный скрипт где производится разрыв includом), технически говоря чтобы управление перешло в самый конец scr, как будто выполнились все оставшиеся после разрыва инструкции в scr, но без выполнения их.
};
//вот пример использования фунции include
...
var a=new Array();
for(var j=1; j<=20; j++)a[j-1]='jsb/'+j+'.js';
include(1,a);
....
Возможно спросите, зачем я так извращаюсь, когда уже известные методы через eval например и с подгрузкой через ajax. Ну это уж мои прихоти.