Просмотр полной версии : Не срабатывает getElementById
Здравствуйте!
Ситуация такая: кусок страницы подгружается через AJAX. После подгрузки не работает обращение к элементу через getElementById
Например, в страницу подгружается такой код:
<textarea id="some_id"></textarea>
<script type="text/javascript">
getElementById('some_id').value = '123'; // не работает
</script>
То есть, как будто браузер не регистрирует новые элементы, которые подгрузились. Как можно исправить? window.onload = function(){} не помогает :(
document.getElementById, а не window.getElementById
Нет, не помогает.
В моем частном случае я подключаю скрипт 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 не работает :(
вот ответ тебе на твой вопрос. какие скрипты ты используешь, я не знаю
<textarea id="some_id"></textarea>
<script type="text/javascript">
document.getElementById('some_id').value = '123';
</script>
Дак написал же: твой код тоже не работает :)
не работает в чём ?
только что проверил : chrome 12 ok, ie 7 ok, firefox 5 ok
Везде не работает (
говорю же: это подгружается ajax'ом в уже готовую страницу.
Что интересно, если написать так:
<textarea id="some_id" onclick="document.getElementById('some_id').value = '123'; "></textarea>
то все работает
так и сказал бы и не парил мозг. исполняй скрипты с загруженной страницы вручную
исполняй скрипты с загруженной страницы вручную
поясни, если не сложно
поясни, если не сложно
пример из 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()
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot