我是Java Script的新手。此HTML和Java脚本代码使用Google Transliteration API将英语单词音译为孟加拉语。我在浏览器中加载此文件,结果显示在页面上(只是孟加拉语单词)。
在Firefox中查看页面源会显示一个空的<div id="transliteration"></div>
标记,就像我加载的HTML代码一样。
但是使用Firebug,我可以清楚地看到孟加拉语这个词确实在这个标签内
再次,使用HttpFox我可以看到来自Google的脚本收到的result
对象。
问题是:
为什么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)中的结果:
结果对象(HttpFox)。对不起质量差的图像。黑色文本的最后一行是整个结果对象(不是橙色条)。
答案 0 :(得分:0)
View is Source显示最初加载的HTML。在页面的JavaScript运行并修改DOM之后,Firebug以HTML格式向您显示页面的DOM。
答案 1 :(得分:0)
Javascript在内存中操纵DOM。
因此,磁盘上任何地方都没有改变DOM的表示。
View-source只显示从服务器收到的数据。
要从您需要执行的javascript访问
var html = document.getElementsByTagName('html')[0].innerHTML;
alert(html); // just to see it
但要将其写入文件,您将需要更多,因为javascript无法访问文件系统(出于安全原因)
对于手动保存,您只需将html
变量的内容放在<textarea>
中,然后复制/粘贴到文件中即可。