0

問題:

多くのサイトのニュース フィードを表示しています。リンクをクリックすると、モーダル パネルがポップアップし、モーダル パネルにリンクのコンテンツをロードする必要があります。

私が試した解決策:

  1. Jquery の load,$.get メソッドを使用して、リモート URL のコンテンツを取得します。サイトが html で相対 URL を使用するという事実を除いて、これは正常に機能します。たとえば。画像を参照するときのibm.comには、次のようなソースがあります

    <img src="/some/relative/path/image.jpg" />

  2. iframe を使用してみました。一部のサイトでは問題なく動作しますが、一部のサイトでは iframe での表示が妨げられ、エラー メッセージがスローされます。

    X-Frame-Options で表示が禁止されているため、ドキュメントの表示を拒否しました。

    適切な解決策をアドバイスしてください

4

2 に答える 2

0

jqueryloadメソッドを使用できる方が良いです

例えば:-$("#someDiv").load("external_url");

于 2012-09-21T12:14:19.027 に答える
0

私は jQuery.load アプローチを採用しますが、相対 URL の問題を修正するには、少し回避策が必要です。

load メソッドにはコールバック オプションがあり、それを使用して挿入された相対 URL を修正できます。

次のようなことができます。

var baseSite = "http://www.somewhere.com";
var baseURL = "/your/folder/";
var container = $('#container').load(baseSite+baseURL+"your-page.html", function(){
    //once you're here, DOM has been updated already!

    //fix relative URLs like "../assets/img/logo.png"
    container.find("img[src^='/']").each(function(){
        $(this).attr('src', baseSite+baseURL+$(this).attr('src'));
    });

    //fix absolute URLs like "/base/path/img/logo.png" (needed only if different domain!)
    container.find("img[src$='/']").each(function(){
        $(this).attr('src', baseSite+$(this).attr('src'));
    });

    //TODO: the same for links!
});
于 2013-11-30T15:04:23.263 に答える