Где хранится объект Java Script на диске? - PullRequest
1 голос
/ 20 апреля 2011

Я новичок в Java Script. Этот код HTML и Java Script транслитерирует английское слово на бенгальский язык с помощью Google Transliteration API. Я загружаю этот файл в браузер, и результат появляется на странице (только бенгальское слово).

При просмотре исходного кода страницы в Firefox отображается пустой тег <div id="transliteration"></div>, как это было в загруженном мной HTML-коде.
Но, используя Firebug, я ясно вижу, что бенгальское слово действительно находится внутри этого тега.
Опять же, используя HttpFox, я вижу объект result, полученный сценарием от Google.

Вопросы есть;
Почему исходный код страницы в Firefox лишен результата, хотя Firefox предоставил результат, и я вижу его прямо здесь?
Где на диске эти программы (Firebug и HttpFox) ищут объект result?

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script type="text/javascript" src="https://www.google.com/jsapi?key=MY_KEY">
    </script>
    <script type="text/javascript">

    google.load("language", "1");

    function initialize() {
      google.language.transliterate(["Mohona"], "en", "bn", function(**result**) {
        if (!result.error) {
          var container = document.getElementById("transliteration");
          if (result.transliterations && result.transliterations.length > 0 &&
            result.transliterations[0].transliteratedWords.length > 0) {
            container.innerHTML = result.transliterations[0].transliteratedWords[0];
          }
        }
      });
    }

    google.setOnLoadCallback(initialize);

    </script>
  </head>
  <body>
    <div id="transliteration"></div>
  </body>
</html> 

Результат в тегах div (Firebug):

enter image description here

Объект результата (HttpFox). Извините за некачественное изображение. Последняя строка черного текста - это весь объект результата (не оранжевая полоса).

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 апреля 2011

Javascript манипулирует DOM в памяти.

Таким образом, нигде на диске нет представления измененного DOM.

View-source будет отображать только данные, полученные с сервера.


Чтобы получить доступ к нему из JavaScript, вам нужно сделать

var html = document.getElementsByTagName('html')[0].innerHTML;
alert(html); // just to see it

, но чтобы записать его в файл, вам потребуется нечто большее, поскольку javascript не может получить доступ к файловой системе ( по соображениям безопасности )

Для ручного сохранения вы можете просто поместить содержимое переменной html в <textarea> и скопировать / вставить в файл.

0 голосов
/ 20 апреля 2011

Вид источника показывает HTML как изначально загруженный. Firebug показывает вам DOM страницы в форме HTML после того, как JavaScript страницы запустился и изменил DOM.

...