#javascript #html #firefox-addon
#javascript #HTML #firefox-дополнение
Вопрос:
Я создал HTML-документ со следующим кодом..
<html>
<head>
<title>My Page</title>
</head>
<body>
<textarea id="main">
Hi this is sample content
</textarea>
</body>
</html>
Моя проблема в том, что я не могу обновить содержимое текстовой области с помощью javascript.
Я использую Firefox 3.6 на Ubuntu
Теперь я использую для этого дополнение Firefox, и я добавил этот код в overlay.js файл
window.content.document.getElementById("main").innerHTML = "some content";
Поскольку ни один код не работает, и мне нужно изменить содержимое текстовой области любым возможным способом.
Ответ №1:
Вы пытались посмотреть на консоль ошибок? Я предполагаю, что браузер не нашел текстовую область, потому что скрипт находится над ней. Попробуйте поместить скрипт под объявлением textarea или поместить код в функцию и вызвать его при событии загрузки тела.
<html>
<head>
<title>My Page</title>
<script>
function updateTextarea(id, value){
document.getElementById(id).innerHTML = value;
}
</script>
</head>
<body onload="updateTextarea('main', 'some content')">
<textarea id="main">
Hi this is sample content
</textarea>
</body>
</html>
Комментарии:
1. Я попробовал ваш код здесь, и он выдает мне ошибку, которая сообщает, что значение main равно null.
2. @Chaitnya
null.innerHTML = "some content";
Не вызывает ошибку? 😛3. Есть ли у вас что-нибудь еще, использующее id = main?
4. Отказано в выполнении скрипта JavaScript. Исходный код скрипта найден в запросе. Получение этой ошибки при выполнении этого кода
Ответ №2:
Замените строку в теге скрипта document.getElementById(«main»).innerHTML = «некоторое содержимое»; На document.getElementById(‘main’).value = «Некоторый текст»;
Ответ №3:
Ваша ссылка на «main» перед загрузкой. Необходимо поместить getElementById в функцию onload или переместить ваш скрипт ниже тега textarea.
РЕДАКТИРОВАТЬ: я не понимаю, в чем ваша проблема. Пока скрипт не запускается до определения текстовой области, он работает нормально. Конечно, это не то, для чего нужен плагин для браузера.
Это отлично работает в моем Firefox…
<html>
<head>
<title>My Page</title>
</head>
<body>
<textarea id="main">This is initial content... </textarea>
<script>
document.getElementById("main").innerHTML = "more content.";
</script>
</body>
</html>