Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое создание скриптов Javascript, Как динамиески создать скрипт 
:(
    Опции темы
kisa_co
Дата 26.9.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 26.9.2006

Репутация: нет
Всего: нет



Можно ли динамиески создать скрипт, напримет так:

_script = document.createElement('script');
_script.type='text/javascript';
_script.id = 'ScRiPt';


не задавая тело скрипта в поле _script.src.

Я использую AJAX и получаю тело скрипта ним, используя поле _script.src

делается дополнительный запрос к серверу, который не очень хочется делать.

Промаялся несколько вечеров, пробуя использовать script.innerHTML = <script_body>, но это работает только в Opera 9.01 и FF 1.5.0.7.
IE матерится на script.innerHTML = <script_body>  "Unknown runtime error".
В Opera 8 тоже не работает (не помню что, пробовал у друга).

Пожалуйста помогите.

Это сообщение отредактировал(а) kisa_co - 26.9.2006, 23:30
PM MAIL   Вверх
skyboy
Дата 26.9.2006, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



Код

 var script= document.createElement('script');
 script.type= "text/javascript";
 script.text= 'alert("!");';
 document.getElementsByTagName('body')[0].appendChild(script);

PM MAIL   Вверх
Sardar
Дата 27.9.2006, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



 smile 
Какое то повальное увлечение за последний месяц у народа скрипты создавать и тело ставить, на вопрос "зачем? и чем eval не подходит?" выясняеться, что некая секретная "религия" не позволяет такого, казалось бы простого, телодвижения smile

Надеюсь что сам скрипт не через XmlHttpRequest подгружаеться, в любом случае автору стоит обратить внимание на так отчаянно игнорируемый начинающими responseXML, а ведь простая в обращении весшь (DOM дерево, поддерживающее естественно XSLT трансформации).

Сардар окончил ворчать  smile 
 smile 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
12345c
Дата 27.9.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Может, пора начать кампанию глобального просвещения по XSLT? (Это другая тема.)

По теме - да, так как показал Skyboy или просто по eval('строка'). Если не нравится строка, можно написать функцию, потом взять от неё .toString()."внутренность()" - получится не функция, а коды в глобальном пространстве имён:

Код
<script>a=0;
fun=function(){var a=12345;
  alert('fun');}
s=fun.toString().replace(/function\(\){([^}]+)}/,'$1')
alert(s)
eval(s)
</script>
<button onclick=alert(a)>Check 'a'</button>




--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.3450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.