【发布时间】:2014-04-25 09:50:36
【问题描述】:
对于一个项目,我需要使用 XMLHttpRequest 或 jQuery 异步加载 HTML 内容。
具体来说,我发出请求并将 HTML 响应加载到 div 容器中。
(这只是一些示例代码:)
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","testFile.php",true);
xmlhttp.send();
}
</script>
</head>
<body onLoad="loadXMLDoc()">
<div id="myDiv" style=""></div>
</body>
</html>
现在的问题是: Afaik 搜索引擎看不到 #myDiv 中的内容,对吗?我有哪些机会可以抓取此内容?
附录:请求也可能是跨域的!
【问题讨论】:
-
抱歉询问,确实搜索引擎会失败,但不仅是它们,而是禁用 JavaScript 的浏览器;屏幕阅读器;索引质量.. 等等。为什么你需要加载这个客户端?
-
感谢您的提示,但我知道所有这些事情。对于这个项目,这是要求。
-
正如 Evgeniy 正确建议的那样,谷歌“寻找” "Hashbangs" (#!) 所以它可能是
www.example.com/xml#!file=test,您可以在之后使用filehash决定要获取哪个 XML;谷歌将为此收集该 URL 的 HTML 快照。其次,如果你想要跨域,它必须是 JSONP,尽管这显然只有在域期待你的调用时才有效。
标签: javascript jquery html web-crawler googlebot