Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2011, 15:14
Аспирант
Отправить личное сообщение для bFree Посмотреть профиль Найти все сообщения от bFree
 
Регистрация: 19.08.2008
Сообщений: 42

Не срабатывает getElementById
Здравствуйте!
Ситуация такая: кусок страницы подгружается через AJAX. После подгрузки не работает обращение к элементу через getElementById
Например, в страницу подгружается такой код:

Код:
<textarea id="some_id"></textarea>

<script type="text/javascript">
getElementById('some_id').value = '123'; // не работает
</script>
То есть, как будто браузер не регистрирует новые элементы, которые подгрузились. Как можно исправить? window.onload = function(){} не помогает
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2011, 15:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

document.getElementById, а не window.getElementById
Ответить с цитированием
  #3 (permalink)  
Старый 27.07.2011, 15:18
Аспирант
Отправить личное сообщение для bFree Посмотреть профиль Найти все сообщения от bFree
 
Регистрация: 19.08.2008
Сообщений: 42

Нет, не помогает.
В моем частном случае я подключаю скрипт edit_area к textarea
То есть, получается вообще так:

Код:
editAreaLoader.init({
	id: "widget_code"	// id of the textarea to transform
	,start_highlight: true	// if start with highlight
	,allow_resize: "both"
	,allow_toggle: true
	,word_wrap: true
	,language: "ru"
	,syntax: "php"
});
Но и вручную document.getElementById не работает
Ответить с цитированием
  #4 (permalink)  
Старый 27.07.2011, 15:20
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

вот ответ тебе на твой вопрос. какие скрипты ты используешь, я не знаю

<textarea id="some_id"></textarea>

<script type="text/javascript">
document.getElementById('some_id').value = '123'; 
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 27.07.2011, 15:21
Аспирант
Отправить личное сообщение для bFree Посмотреть профиль Найти все сообщения от bFree
 
Регистрация: 19.08.2008
Сообщений: 42

Дак написал же: твой код тоже не работает
Ответить с цитированием
  #6 (permalink)  
Старый 27.07.2011, 15:25
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

не работает в чём ?

только что проверил : chrome 12 ok, ie 7 ok, firefox 5 ok
Ответить с цитированием
  #7 (permalink)  
Старый 27.07.2011, 15:26
Аспирант
Отправить личное сообщение для bFree Посмотреть профиль Найти все сообщения от bFree
 
Регистрация: 19.08.2008
Сообщений: 42

Везде не работает (
говорю же: это подгружается ajax'ом в уже готовую страницу.
Что интересно, если написать так:
Код:
<textarea id="some_id" onclick="document.getElementById('some_id').value = '123'; "></textarea>
то все работает
Ответить с цитированием
  #8 (permalink)  
Старый 27.07.2011, 15:32
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

так и сказал бы и не парил мозг. исполняй скрипты с загруженной страницы вручную
Ответить с цитированием
  #9 (permalink)  
Старый 27.07.2011, 15:38
Аспирант
Отправить личное сообщение для bFree Посмотреть профиль Найти все сообщения от bFree
 
Регистрация: 19.08.2008
Сообщений: 42

Цитата:
исполняй скрипты с загруженной страницы вручную
поясни, если не сложно
Ответить с цитированием
  #10 (permalink)  
Старый 27.07.2011, 16:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от bFree Посмотреть сообщение
поясни, если не сложно
пример из Prototype.js

var st = String.prototype;  

st.extractScripts = function() {
    var matchAll = new RegExp('<script[^>]*>([\\S\\s]*?)<\/script>', 'img'),
        matchOne = new RegExp('<script[^>]*>([\\S\\s]*?)<\/script>', 'im');
    return (this.match(matchAll) || []).map(function(scriptTag) {
      return (scriptTag.match(matchOne) || ['', ''])[1];
    });
  }
 st.evalScripts = function() {
    return this.extractScripts().map(function(script) { return eval(script) });
  }

"<br> html tags <script>alert('evalled!!!')</script> ololo".evalScripts()
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает обработчик window.onload. Alex82 Events/DOM/Window 16 22.02.2013 21:06
не срабатывает на второй раз ajax[отправка формы] vovs jQuery 5 21.09.2010 12:12
Почему функция срабатывает один раз? Bogdan808 Javascript под браузер 4 06.09.2010 23:41
Не срабатывает при отсутствии в теле документа yuriii jQuery 3 06.05.2010 17:45
getElementById sc2r2bey AJAX и COMET 2 15.07.2009 14:05