Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в JavaScript включить другой скрипт на страницу / 12 сообщений из 12, страница 1 из 1
27.09.2006, 19:59
    #34017080
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в JavaScript включить другой скрипт на страницу
Необходимо в зависимости от условий включать и исключать из страницы ссылки на скрипты

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

Помогите плз!
...
Рейтинг: 0 / 0
28.09.2006, 11:49
    #34018270
belkazl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в JavaScript включить другой скрипт на страницу
JavaScript здесь не поможет, хотя если обработчик JavaScript поставить в body на onload, то в этом скрипте можно проверить необходимость включения того или иного скрипта и выводить document.write('<SCRIPT LANGUAGE="JavaScript" SRC="JavaScript.js"/>'); или не выводить его.belka
...
Рейтинг: 0 / 0
29.09.2006, 01:39
    #34020614
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в JavaScript включить другой скрипт на страницу
Здравствуйте, 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
09.11.2006, 13:54
    #34115934
ShurikEv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в JavaScript включить другой скрипт на страницу
Надо так :






  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
09.11.2006, 19:10
    #34117416
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в JavaScript включить другой скрипт на страницу
SE>script.readyState == "loaded" я не пойму

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

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

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

Так не получиться или возможно пкутем создания в первой функции цикла проверки загруженности скрипта, и только после загрузки оного выходить из функции
...
Рейтинг: 0 / 0
11.11.2006, 13:04
    #34121130
ShurikEv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в JavaScript включить другой скрипт на страницу
:)
>возможно пкутем создания в первой функции цикла проверки загруженности скрипта, и только после загрузки оного выходить из функции
Ну эта идея была я её описал в первом посте, там я ждал в while(!flag){}
Может можно как-то корректнее?
...
Рейтинг: 0 / 0
12.11.2006, 14:35
    #34121936
ShurikEv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в JavaScript включить другой скрипт на страницу
Реализовал ф-ю
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
12.11.2006, 15:29
    #34121969
ShurikEv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в JavaScript включить другой скрипт на страницу
Вот можно применить хак в ИЕ (только почему-то у меня в ИЕ7 модальное окно само не закрывается, а в ИЕ6 всё нормалёк)
function sleep( numberMillis ) {
window.showModalDialog("javascript:document.writeln(\"window.setTimeout('window.close()', " + numberMillis + ");\")","","");
}
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как в JavaScript включить другой скрипт на страницу / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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