досрочный выход выполнения из тега script
Здравствуйте!
Мне надо узнать как выполнить досрочный выход из сценария 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. Ну это уж мои прихоти. |
красивого выхода нет.
Понигмив я набрел на статью и там я прочел следующие строки:
Цитата:
|
Вы обкурились php по видимому.
Цитата:
|
Часовой пояс GMT +3, время: 09:16. |