嗨,我有一个简短的问题,说你想连接到一个网站并搜索它包含哪些链接,你是如何用javascript实现的?我想做这样的事
Var everythingAdiffrentPageContains = //Go to some link ex www.msn.se and store it in this variable
var pageLinks = []; var anchors = everythingAdiffrentPageContains.getElementsByTagName('a');
var numAnchors = anchors.length;
for(var i = 0; i < numAnchors; i++) {
pageLinks.push(anchors[i].href);
} 我们可以在这里假设,我们已经获得了网站的权利,所以这是不关心的。
换句话说,我想去某个站点并将所有这些站点超链接存储在一个数组中,您将如何在javascript中做到这一点?
谢谢
编辑自指出Im ,而不是试图连接到另一个领域。我试图连接到另一个apache服务器在我的局域网,托管一个网站,我想扫描的链接。
Unfornuatley我的not服务器上没有PHP :/但是一个简单的javascript就可以做到这一点
例如,转到X:/文件夹/example.html。
阅读它,并存储链接
发布于 2010-12-16 10:32:53
不幸的是-你不能这么做。“我们可以在这里假设我们对站点拥有访问权限”……从JavaScript的角度来看,这是一个错误的假设,如果页面位于上的另一个域上。您只是不能通过JavaScript访问另一个域上的内容(反正不是HTML )。它被同源政策阻止了,原因有几个安全原因。
发布于 2010-12-16 10:41:58
我建议您使用一个JS框架,该框架可以帮助您轻松地检索元素并使用DOM进行操作。例如,使用mootools可以实现这样的目的--编写如下代码:
var req = new Request.HTML({
url:'./retrieve.php?url=YOURURL', //create a server script to "retrieve" the html of another domain page
onSuccess: function(tree,DOMelements) {
var links = [];
DOMelements.getElements('a').each(function(element){
links.push(element.get('href'));
});
}
});
req.send();例如,应该以这种方式编写retrieve.php页面:
<?php
$url = $_GET['url'];
header('Content-type: application/xml');
echo file_get_contents($url);
?>https://stackoverflow.com/questions/4459739
复制相似问题