Содержимое текстовой области не обновляется в Mozilla Firefox

#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>