powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в JavaScript включить другой скрипт на страницу
12 сообщений из 12, страница 1 из 1
Как в JavaScript включить другой скрипт на страницу
    #34017080
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо в зависимости от условий включать и исключать из страницы ссылки на скрипты

Объект documrnt.scripts не имеет соответствующих методов

Помогите плз!
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34018270
belkazl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JavaScript здесь не поможет, хотя если обработчик JavaScript поставить в body на onload, то в этом скрипте можно проверить необходимость включения того или иного скрипта и выводить document.write('<SCRIPT LANGUAGE="JavaScript" SRC="JavaScript.js"/>'); или не выводить его.belka
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34020614
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, belkazl, Вы писали:

B>JavaScript здесь не поможет, хотя если обработчик JavaScript поставить в body на onload, то в этом скрипте можно проверить необходимость включения того или иного скрипта и выводить document.write('<SCRIPT LANGUAGE="JavaScript" SRC="JavaScript.js"/>'); или не выводить его.

B>
данное сообщение получено с www.gotdotnet.ru
B>ссылка на оригинальное сообщение


не — так не будет работать если срипт не вписан в HTML
Надо так :



  var sPath = "js/somescript.js";
  var l = document.scripts.length;
  var found = false;
  for (var i=0; i<l; i++)
  {
    if (document.scripts[i].src == sPath)
    {
      found = true;
      break;
    }
  }
 
  if (!found)
  {
    var script = document.createElement("script");
    script.id = "idScript";
    script.type = "text/jscript";
    script.onreadystatechange = function(){
      if (script.readyState == "loaded")
      {
        document.getElementsByTagName('head')[0].appendChild(script);
        //тут уже можно обратиться к скрипту
      }
    }
    script.src = sPath;
  }
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34115934
ShurikEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо так :






  var sPath = "js/somescript.js";
  var l = document.scripts.length;
  var found = false;
  for (var i=0; i<l; i++)
  {
    if (document.scripts[i].src == sPath)
    {
      found = true;
      break;
    }
  }
 
  if (!found)
  {
    var script = document.createElement("script");
    script.id = "idScript";
    script.type = "text/jscript";
    script.onreadystatechange = function(){
      if (script.readyState == "loaded")
      {
        document.getElementsByTagName('head')[0].appendChild(script);
        //тут уже можно обратиться к скрипту
      }
    }
    script.src = sPath;
  }

Занёс это в ф-ю, которая имеет только один параметр - путь до скрипта.
Если вызывать эту ф-ю, а следом за ней сразу ф-ю из присоединенного скрипта, то вылетает ошибка "Типа нет еще такой ф-ии".
А когда я ф-ю вызываю в строчке
//тут уже можно обратиться к скрипту
то всё нормально
Как можно реализовать последовательное выполнение этих функций? Почему так происходит я догадываюсь, а вот как сделать, чтобы вторая ф-я не начала выполняться пока не случится script.readyState == "loaded" я не пойму
Пытался завести флаг, после взвода которого происходит выход из первой ф-ии, но тогда ИЕ говорит "что скрипт тормазит его работу", еще бы ведь проверка идет в цикле
while(!flag){}
Что можно предпринять?
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34117416
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SE>script.readyState == "loaded" я не пойму

это означает что скрипт загрузился и готов к выполнению
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34117931
ShurikEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да это ясно. Вопрос был в другом: как последовательно эти две функции запускать?
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34120372
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, ShurikEv, Вы писали:

SE>Да это ясно. Вопрос был в другом: как последовательно эти две функции запускать?

так как я описал только после проверки того что скрипт загружен надо вызывать функцию в которой идет вызов функции из скрипта
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34121059
ShurikEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
именно так и делаю...
Но мне это не удобно, т.к. мне в общем случае надо просто определить набор ф-й, описанных в прицепляемом js-файле, а далее их использовать в коде.
Сейчас как сделано:
function window.onload()
{
AddScript("путь к скрипту", "MyFunc(1,'g')");
}
где MyFunc(1,'g') - функиция, которую надо запустить и она описана в прицепляемом скрипте
Что хотелось бы
function window.onload()
{
AddScript("путь к скрипту");
MyFunc(1,'g');
}
Чем важнее для меня второй вариант, т.к. , в общем говоря, мне удобнее все действия, которые надо совершить описывать в window.onload(). Да еще к тому же в window.onload() я использую ф-ии, определенные в текущем файле-срипте.
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34121125
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SE>Что хотелось бы
SE>function window.onload()
SE>{
SE> AddScript("путь к скрипту");
SE> MyFunc(1,'g');
SE>}
SE>Чем важнее для меня второй вариант, т.к. , в общем говоря, мне удобнее все действия, которые надо совершить описывать в window.onload(). Да еще к тому же в window.onload() я использую ф-ии, определенные в текущем файле-срипте.

Так не получиться или возможно пкутем создания в первой функции цикла проверки загруженности скрипта, и только после загрузки оного выходить из функции
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34121130
ShurikEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:)
>возможно пкутем создания в первой функции цикла проверки загруженности скрипта, и только после загрузки оного выходить из функции
Ну эта идея была я её описал в первом посте, там я ждал в while(!flag){}
Может можно как-то корректнее?
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34121936
ShurikEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Реализовал ф-ю
function sleep (m)
{
  var then = new Date(new Date().getTime() + m);
  while (new Date() < then) {}
}
И делаю не просто while(!flag){}, а
while(!flag)
{
  window.status = flag;
  sleep(1000);
}
Чтобы цикл через секунду срабатывал. НО! Похоже когда выполняется sleep документ не успевает подгружаться, т.к. в window.status написано false. Поэтому цикл опять получается бесконечный  Я уже и не знаю что делать.
Пробовал через setInterval/setTimeout, но эти функции не тормазят программу на какое-то время, а просто запускают таймеры, после чего завершают свою работу.
Мне же надо (повторю) - словесное описание ф-ии window.onload()
что-то делаю
подгружаю скрипт
пока он подгружается ничего не делать
вызвать ф-ю из скрипта
остальная работа
...
Рейтинг: 0 / 0
Как в JavaScript включить другой скрипт на страницу
    #34121969
ShurikEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот можно применить хак в ИЕ (только почему-то у меня в ИЕ7 модальное окно само не закрывается, а в ИЕ6 всё нормалёк)
function sleep( numberMillis ) {
window.showModalDialog("javascript:document.writeln(\"window.setTimeout('window.close()', " + numberMillis + ");\")","","");
}
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в JavaScript включить другой скрипт на страницу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]