【发布时间】:2011-08-18 19:10:37
【问题描述】:
运行一些动态构建图像数组的 JavaScript。
这是简化版:
var imgArray = new Array(
"mainBG.jpg",
"mainBG2.jpg",
"mainBG3.jpg",
"mainBG4.jpg"
);
var img = Math.floor(Math.random()*imgArray.length);
jQuery(document).ready(function() {
$("body").ezBgResize({img : "/lib/img/bkgr/" + imgArray[img]});
});
function generateThumbs(){
var t = document.getElementById("thumbs");
var ret = '';
for(i=0;i<imgArray.length;i++){
var image = imgArray[i];
ret += '<a href="#" onclick="changeBig(\''+image+'\')" /><img src="/lib/img/bkgr/'+image+'" alt="thumbnail image" width="77" height="44" /></a>';
}
return ret;
};
function changeBig(bg){
$("body").ezBgResize({img : "/lib/img/bkgr/" + bg});
}
然后在页面中,它被简单地写出来:
<div class="scrollable">
<div class="items" id="thumbs">
<script>document.write(generateThumbs());</script>
</div>
</div>
问题是,当我查看源代码时,它从不输出实际的 HTML。源代码只是显示了那条线。有没有办法让该函数实际将 HTML 输出到页面中 - 部分用于 SEO,但也有一些 jQuery 可以与之交互 ?
【问题讨论】:
-
网络爬虫很少(如果有的话)执行 Javascript。 SEO 对此毫无用处,因为爬虫永远不会看到您的 JS 生成的内容。话虽如此,请改用
document.getElementById('thumbs').innerHTML = generateThumbs()。 -
"The source just shows that line" 如果要直接显示 HTML,则需要在服务器端添加它,然后再部署到客户端。
-
您的
t变量是多余的。 -
源代码只是显示服务器发送的原始代码,在我知道的所有浏览器中,当您使用Javascript修改DOM时,源代码不会改变。您是否尝试过使用 Chrome/Safari 中的开发者菜单或 Firefox 中的 Firebug?
-
只是指出 document.getElementById('thumbs'); == $('#thumbs');请仅使用 jQuery,以便您更好地理解代码。
标签: javascript jquery html seo