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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> innerHTML & getElementById 
:(
    Опции темы
TrivialCore
Дата 25.10.2007, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Народ, срочная проблема под IE (6).

Короче добавляю кусок HTML, вставляя его в div:

div.innerHTML = someHtml;

В этом someHtml содержится <script id="someScript"> alert('helo!'); </script>

Проблема: Когда после вставки куска делаю document.getElementById("someScript"), ничего не возвращается.
Иначе говоря, после вставки в innerHTML браузер не распознает содержимого.

Как его заставить это делать? И вообще, почему так происходит, ведь тот же FF все считывает грамотно.

Желательно не использовать DOM. 
PM MAIL   Вверх
smartov
Дата 25.10.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



TrivialCore
у IE это известная проблема. Пробовал ее обойти без DOM - дично у меня не получилось.
Но зато вот такой код работает у меня в IE 6, может тебе это поможет.

Код

<html>
<body>

<div id="myDiv"></div>

<script type="text/javascript">

div = document.getElementById('myDiv');

sc = document.createElement("SCRIPT");
sc.type = 'text/javascript';
sc.text = 'alert("Hello!")';

div.appendChild(sc);

</script>

</body>
</html>

PM MAIL   Вверх
TrivialCore
Дата 25.10.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



smartov, DOM мне все же не катит, но зато нашел решение с использованием innerHTML:

Короче вот решение: http://msdn2.microsoft.com/en-us/library/ms533897.aspx

Надо добавить в тег script атрибут DEFER (!!), а вставляемую строку начать с "in-scope" элемента хтмл, например <input type="hidden"/> (!!!!!!) 

Тест:

Код

<html>

<head>
<script>

function loadJs() {

var newContent = '<input type=\"hidden\" name=\"fdsa\" value=\"1\"/><script defer id=\"onLoadScript\">alert(\'hi!\');</' + 'script><div> new content! </div>';

var dv = document.getElementById("topTab");

dv.innerHTML = newContent;

}

</script>
</head>

<body>

<div id="topTab">
Beginning
</div>
<input type="button" value="load up" onclick="loadJs()"/>

</body>
</html>



PM MAIL   Вверх
smartov
Дата 25.10.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Цитата(TrivialCore @  25.10.2007,  13:09 Найти цитируемый пост)
DOM мне все же не катит

интересно было бы знать почему.

Цитата(TrivialCore @  25.10.2007,  13:09 Найти цитируемый пост)
добавить в тег script атрибут DEFER (!!), а вставляемую строку начать с "in-scope" элемента

Ужас. То есть просто вставить скрипт, без другого контента - фигушки...
viva la IE
PM MAIL   Вверх
dstorm81
Дата 25.10.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

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



мда все у них через жо
но ты тоже усложнил себе жизнь
Код

var newContent = '<input type="hidden" /><script defer id="onLoadScript">alert("hi!")<\/script>';


так проще и с конкатенцией через + мудрить не надо

хотя советую через DOM начать
философия очень правильная




--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

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


 




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


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

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