0

Javascriptを使用して、Webページのhtmlソースコードを文字列に入れようとしています。私の問題を解決するために何か他のことができるかどうか教えてください..別の投稿から見つけた次のコードを使用しています

function httpGet(theUrl)
{
var xmlHttp = null;

xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.send( null );
return xmlHttp.responseText;
}

私はこれを IE Firefox と Chrome で試しましたが、「ページが見つかりません」ページのソース コードである次のソース コードを常に取得します。他の情報があれば、コメントでお知らせください。 google.com などの Web ページや他の Web ページから html を取得します。それができない場合は、どうすればよいですか?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://gmpg.org/xfn/11">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>404 - PAGE NOT FOUND</title>
            <style type="text/css">
            body{padding:0;margin:0;font-family:helvetica;}
            #container{margin:20px auto;width:868px;}
            #container #top404{background-image:url('http://74.53.143.237/images/404top.gif');background-repeat:no-repeat;width:868px;height:168px;}
            #container #mid404{background-image:url('http://74.53.143.237/images/404mid.gif');background-repeat:repeat-y;width:868px;}
            #container #mid404 #gatorbottom{position:relative;left:39px;float:left;}
            #container #mid404 #xxx{float:left;padding:40px 237px 10px;}
            #container #mid404 #content{float:left;text-align:center;width:868px;}
            #container #mid404 #content #errorcode{font-size:30px;font-weight:800;}
            #container #mid404 #content p{font-weight:800;}
            #container #mid404 #content #banner{margin:20px 0 0 ;}
            #container #mid404 #content #hostedby{font-weight:800;font-size:25px;font-style:italic;margin:20px 0 0;}
            #container #mid404 #content #coupon{color:#AB0000;font-size:22px;font-style:italic;}
            #container #mid404 #content #getstarted a{color:#AB0000;font-size:31px;font-style:italic;font-weight:800;}
            #container #mid404 #content #getstarted {margin:0 0 35px;}
            #container #bottom404{background-image:url('http://74.53.143.237/images/404bottom.gif');background-repeat:no-repeat;width:868px;height:14px;}
            </style>
</head>
<body>
<div id="container">
    <div id="top404"></div>
    <div id="mid404">

            <div id="gatorbottom"><img src="http://74.53.143.237/images/gatorbottom.png" alt="" /></div>
            <div id="xxx"><img src="http://74.53.143.237/images/x.png" alt="" /></div>
    <div id="content">
            <div id="errorcode">ERROR 404 - PAGE NOT FOUND</div>
            <p>Oops! Looks like the page you're looking for was moved or never existed.<br />Make sure you typed the correct URL or followed a valid link.</p>

            <div id="banner">

                    <object width="728" height="90"><param name="movie" value="http://74.53.143.237/images/hg728x90.swf">

                            <embed src="http://74.53.143.237/images/hg728x90.swf?clickTAG=http://secure.hostgator.com/cgi-bin/affiliates/clickthru.cgi?id=page404" width="728" height="90"></embed>
                    </object>
            </div>

            <div id="hostedby">This site is hosted by HostGator!</div>
            <div id="coupon">Build your website today for 1 cent!   Coupon code: "404PAGE"</div>

            <div id="getstarted"><a href="http://www.hostgator.com/?utm_source=internal&utm_medium=link&utm_campaign=page404" title="HostGator Web Hosting" >CLICK HERE TO GET STARTED</a></div>

    </div>

    <div style="clear:left;"></div>
    </div>
    <div id="bottom404"></div>
</div>

</body>

</html>
4

1 に答える 1

3

Javascriptを使用して、Webページのhtmlソースコードを文字列に入れようとしています

「任意」とは、ドキュメントが提供されたオリジン以外のオリジンからのページを意味する場合、ブラウザで実行されている JavaScript からそれを行うことはできません。これは、ajax 呼び出しを使用しており、それらが同じオリジン ポリシーによって制限されているためです。これは、(たとえば) のドキュメントで実行されているスクリプトhttp://stackoverflow.comは ajax を使用して からコンテンツをロードできないことを示していますhttp://example.com。(「オリジン」は単なるドメイン名ではなく、いくつかの側面があります。詳細についてはリンクを参照してください)。

リクエストする可能性のあるページの一部 (おそらく非常に少数) はCross-Origin Resource Sharingをサポートしている可能性があります。

ブラウザの外部でJavaScript を実行している場合(NodeJS、SilkJS、RingoJS、Rhino、Windows Scripting Host など)、SOP は適用されませんが、XMLHttpRequestオブジェクト以外のものを使用する必要があるのではないかと思います。やれ。

しかし、基本的に、ブラウザの Web ページ (拡張機能やアドオンではない) では、それを行うことはできません。

...しかし、私は常に取得します...「ページが見つかりません」ページのソースコード

しかし、それは URL が間違っているようです。

于 2013-04-13T16:15:54.980 に答える