0

iframe を使用して Chrome でキオスク モードのサイトを持っており、そこで多数の外部サイトを開いています。また、各サイトには、target="_blank" を使用した独自のリンクがあります。これらの外部リンクを制御することはできません。これらのすべての外部リンクを iframe 内のみで開きたいか、またはそれらの target=_blank リンクに対してメッセージを公開する必要があります。キオスクで新しいウィンドウを開くことができません。これまで検索したところ、サーバー側のコーディングである必要があることがわかりました。Javascriptはそれで何の助けにもなりません。

私のiframeコード:

  navigateToExternal:function(href)
    {
        Engine.ui.openMenu();
        Engine.ui.exit();
        Engine.ui.mostRecentSection = "external";

        $("a[data-navsection], a[href]").removeClass("disabled");
        $("a[href='" + href + "']").addClass("disabled");

        $(".footer").hide();

       var sandbox = "sandbox=\"allow-forms allow-scripts allow-same-origin\"";


         $("#content-container").append("<iframe id=\"contentFrame\" src=" + href + "\"" + sandbox + "></iframe>");
    },

どんな助けや提案も本当に素晴らしいでしょう.

前もって感謝します!!

4

3 に答える 3

2

親ページはクロスサイト iframe にアクセスできず、iframe はクロスサイト親ページにアクセスできません。

これは Same-Origin ポリシーに該当し、クライアント側で回避することはできません。サーバー上のこれらのサイトをスクレイピングして自分のものとして提示することもできますが、それがどれほど効果的かはわかりません.

于 2012-07-12T19:49:10.573 に答える
0

Chrome で実行している場合は、html5 iframesandbox属性を試すことができます。

<iframe sandbox="allow-scripts allow-forms" src="..."></iframe>

もっと読む

于 2012-07-31T05:13:59.910 に答える
0

私はこれを回避し、共有することを考えました。コマンド ライン引数を渡すことができます。Mac の場合は、ターミナルを開いて次を実行します。

 $ open -a Google\ Chrome --args --disable-web-security 

これにより、Same-Origin-Policy が無効になり、クロスサイト iframe で必要な変更を加えることができます。

于 2012-11-16T17:38:48.300 に答える