#javascript #google-translate
#javascript #google-translate
Вопрос:
Я новичок в 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 amp;amp; result.transliterations.length > 0 amp;amp;
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):
Результирующий объект (HttpFox). Извините за изображение низкого качества. Последняя строка черного текста — это весь результирующий объект (не оранжевая полоса).
Ответ №1:
View is Source показывает HTML как первоначально загруженный. Firebug показывает вам DOM страницы в форме HTML после запуска JavaScript страницы и изменения DOM.
Ответ №2:
Javascript управляет DOM в памяти.
Таким образом, нигде на диске нет представления измененного DOM.
View-source будет отображать только данные, полученные с сервера.
Чтобы получить к нему доступ из javascript, вам нужно выполнить
var html = document.getElementsByTagName('html')[0].innerHTML;
alert(html); // just to see it
но для записи его в файл вам потребуется нечто большее, потому что javascript не может получить доступ к файловой системе (по соображениям безопасности)
Для ручного сохранения вы можете просто поместить содержимое html
переменной в <textarea>
и скопировать / вставить в файл.
Комментарии:
1. Как мне получить доступ к этим данным? Могу ли я сделать это из кода Java Script и записать его в файл на диске?