2010-12-16 6 views
0

こんにちは私は、あなたがウェブサイトに接続し、それが含んでいるリンクを検索したいと言っています、どのようにJavaScriptでこれを行うのですか? 私はこのウェブページを取得し、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で行いますか?

おかげ

別のドメインに接続しようとしていないイムを指摘したので、EDIT。私はリンクをスキャンしたいウェブサイトをホストしている私のLAN内の別のApache Webサーバーに接続しようとしています。

Unfornuatley私は私のウェブサーバ上でPHPを持っていない:/しかし、簡単なjavascriptのは、それをXに行き例えば

だろう:

がそれを読んで/folder/example.html、およびリンクを保存し

+0

かどうかはしていません問題は、それが別のサーバーにある場合、たとえばあなたのURLのアドレスバーは異なっている、そしてあなたはそこに行くことができない、詳細については私の答えで同じ起源のポリシーへのリンクを参照してください。 –

答えて

0

残念ながら - これはできません。 "ここにはサイトへのアクセス権があると仮定できます" ...ページがの別のドメインにある場合、JavaScriptの観点からは誤った仮定です。 JavaScript経由で別のドメインのコンテンツ(HTMLコンテンツではない)にアクセスすることはできません。いくつかのセキュリティ上の理由から、same-origin policyによって防止されています。

+0

ブラウザのようなコンテキストでJavaScriptを実行するデスクトップアプリケーションの中には、Windowsデスクトップガジェットなどの同じ起点ポリシーによってバインドされていないものがあります。そうであれば、営業担当者が指定する必要があります。 –

+0

@Andy - 非常に真実で、ブラウザーには何も記述されていないのですが、私はブラウザーにいると仮定していますが、そこではオッズを演じています:) –

0

DOMを簡単に要素を取得して処理するのに役立つJSフレームワークを使用することをお勧めします。たとえば あなたは、これは、このようないくつかのコードを書いて達成​​できる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ページはこのように例のために書かれるべきである:あなたのLAN内

<?php 
    $url = $_GET['url']; 
    header('Content-type: application/xml'); 
    echo file_get_contents($url); 
?> 
+0

Unfornuatley私はWebサーバー上にPHPを持っていないので、/ – johan

+0

あなたは必要なサーバ側のスクリプト言語を使うことができます;)..itはサーバサイドスクリプトを使って外部ウェブページhtmlを取り出す方法を説明する単なる例です。 jsでこれをやりたければできません。 :) あなたのウェブサーバーには何がありますか? – stecb

+0

あなたのサーバーには何がありますか? – Bojangles

関連する問題