私は expedia と提携しており、彼らの API システムを使用しています。サイトを立ち上げるための要件の 1 つは、利用規約を私のページに追加することで、このページを提供してくれます: http://travel.ian.com/index.jsp?pageName=userAgreement&locale=en_US&cid=xxx . 違うサイトに行きたくないし、更新で情報をコピペできない。また、iframe を使用しないことを好みます。これを行う方法について誰かアイデアがありますか?これは、ドメインのサイトでこれを使用している Web ページです: http://www.helloweekends.com/terms.htm。彼らがこれをどのように行ったか知っている人はいますか?どんな助けでも大歓迎です!
3 に答える
同じオリジン ポリシーにより、別のドメインから発信されているため、JavaScript を使用することはできません。また、更新を JavaScript に依存することは、JavaScript を無効にしているユーザーにとっては、条件が表示されないため問題になります。iframe を使用したり、コンテンツをコピーしたりしたくないので、選択したサーバー側の言語でページをスクレイピングし、それをページに表示するのが最善の方法だと思います。
ただし、マークアップに依存している場合、スクレイピングは少し難しい場合があります。彼らがマークアップを変更すると、スクリプトが壊れて条件の更新が停止する可能性があります。
サイトをスクレイピングする方法については、さまざまなチュートリアルが用意されています。以下にいくつかの PHP の例を示します。
注:ルールに違反しないように、ページを実装する前にスクレイピングが許可されていることを確認してください。
彼らの API が JSON で何かを提供しているかどうか知っていますか? JSONP 呼び出しで値を取得できますが、ユーザーが更新されたページを表示するためにページが JavaScript に依存することになります。
もう 1 つのオプションは、他のサーバー側言語の PHP を使用して URL のコンテンツを取得し、それを処理して、必要なブロックを返すことです。
jQuery が提供する load() 関数をお勧めします。ファイルを取得するために単純な AJAX 呼び出しを行い、セレクターを使用してページの一部のみを取得することもできます。たとえば、HTML ページのコンテンツを div にロードします。
$('#div_id').load('my_file.html');
または、ページの一部をロードするだけです:
$('#div_id').load('my_file.html #main_text_id');