0

texboxにリンクがあります。ボタンをクリックすると、リンクのページのタイトルを取得したいと思います。javascriptまたはjQueryでどのようにそれを行うことができますか?

4

5 に答える 5

1

この投稿はあなたにスタートを与えることができます

http://forum.jquery.com/topic/get-external-page-and-fetch-title-googled-a-lot-didn-t-find-any-solution

于 2012-10-10T13:28:16.703 に答える
0

ページが同じドメインにある場合は、ajaxリクエストを使用して、返されたDOMオブジェクトからタイトルを取得します。

別のドメインの場合は、非表示のIFrameをその場所に設定し、読み込まれたときに次のようなものを使用してタイトルを取得します。

document.getElementById('MyIframe').document.title
于 2012-10-10T13:28:36.803 に答える
0

ほとんどの場合、バックエンドスクリプト/クローラーによって実行されます。サーバー側であなたのウェブページを取得し、AJAXによって解析されたデータを返します

于 2012-10-10T13:30:10.150 に答える
0

このようなことを試してください

<a href="http://www.google.com" id="googleLink">Google</a>
<span id="titleGoesHere"></span>

-

$(document).ready( function() {
    $('#googleLink').click(function(){
        $.get(this.prop('href'), function(data) {
            var $temp = $('<div id="tempData" />');
            $temp.append(data);
            var title = $('title', $temp);
            $('#titleGoesHere').html(title.val());
        });
    });
});
于 2012-10-10T13:44:39.603 に答える
0

セキュリティ上の理由から、ブラウザはスクリプト内から開始されるクロスオリジンHTTPリクエストを制限します。また、フロントエンドでクライアント側のJavascriptをWebスクレイピングに使用しているため、CORSエラーが発生する可能性があります。

..。

フロントエンドスクリプト内にしっかりととどまると、Any Origin、Whatever Origin、All Origins、crossoriginなどのクロスドメインツールを使用できます。スクレイプしようとしているサイトで機能するものを見つけるために、これらのいくつかをテストする必要があることがよくあります。

この投稿から、私はこの実用的で自己完結型のフィドルを書きました:

function replaceAll(str, find, replace) {
    return str.replace(new RegExp(find, 'g'), replace);
}

const url = "https://www.facebook.com/"

$.getJSON('https://allorigins.me/get?url=' + encodeURIComponent(url) + '&callback=?', function(data){
    const content = replaceAll(data.contents, "<script", "<meta");
    $("#content").append(content);
    const d = $("#content");
    $('#title').text(d.find('title').text());
  $('#description').text(d.find('meta[name=description]').attr("content") || "None");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="content" style="display: none;">
</div>

<h3 id="title">Waiting...</h3>

<br/>

<p id="description">Waiting...</p>


いくつかのコメント:

  • httpsを介してクロスドメインツールを使用する
  • encodeURIComponentあなたのURLを忘れないでください
  • scriptタグをタグに置き換えmetaて、DOMに追加したときにそれらが実行されないようにしました(この質問の関数を置き換えます)
  • 使用するには、解析されたjQueryをDOMに追加する必要があります(この質問を参照)
于 2018-07-16T09:00:18.170 に答える