1

この特定のトピックにはSOに関するいくつかの回答がありますが、どれも私の問題を解決しません。とてもシンプルなものだと思いますが、どこを見ればいいのかわかりません。

  • FancyboxでURLを手動で(つまり、「物理的に」リンクをクリックして)開こうとすると、機能します。
  • ただし、ページの読み込み時に自動的に(つまり、リンクをクリックして偽造して)開こうとすると、まったく機能せず、タイトルに記載されているエラーが表示されます。

HTMLは単純です:

<a href="http://www.mydomain.nl/url/to/whatever" class="fancybox hidden_link">test</a>

自動的にクリックするために使用しているJavascriptも非常に簡単です。

$(document).ready(function() {              
    $(".hidden_link").fancybox().trigger("click");
});

イベントは終了します(Fancyboxが開きます)が、「コンテンツを読み込めません」というメッセージしか表示されません。リンクを手動でクリックすると、Fancyboxに自分のページが表示されます。

ここで何が欠けていますか?

4

4 に答える 4

4

このリンクを持っている:

<a href="http://www.mydomain.nl/url/to/whatever" class="fancybox hidden_link">test</a>

...このスクリプト:

$(document).ready(function() {
    $(".fancybox").fancybox({
        type: "iframe",
        width : 380, // or whatever
        height: 280
    }).trigger("click");
});​

...手動とプログラムの両方で仕事をする必要があります。

JSFIDDLEを参照してください

type: "iframe"コンテンツは外部ページであるため、使用したことに注意してください。いずれの場合も、同一生成元ポリシーを検討する必要があります。

于 2012-11-21T18:24:45.700 に答える
1

これは、同一生成元ポリシーの側面の1つです。正確な動作はブラウザごとに異なります。http://code.google.com/p/browsersec/wiki/Part2#Navigation_and_content_inclusion_across_domainsを参照してください

ブラウザのバージョンごとの概要は次のとおりです。

JavaScriptでリンクをクリックすると、ユーザーに代わってアクションが発生する可能性があるため、ここには明らかにセキュリティ上の懸念があります。これは、GETリクエストによって状態が変化するサイトでは破壊的である可能性があります。これは、ユーザーを認証するヘッダー(Cookieなど)がそのGETリクエストとともに送信されるためです。

于 2012-11-21T14:34:46.877 に答える
1

同一生成元ポリシーのようなものがあるからです。

あなたはグーグルの応答から得ます:X-Frame-Options SAMEORIGIN

ドメイン内のサブページにリンクすると、機能するはずです。

于 2012-11-21T14:41:12.800 に答える
1

これが私が著者にしばらく与えた解決策です。

$(document).ready(function() {
    $.fancybox({
        content: $("#popup"),
        closeClick  : false,
        openEffect  : 'none',
        closeEffect : 'none',
        helpers   : {
            overlay : {
                closeClick: false,
            }
        }
    });
});

リンク: http: //jsfiddle.net/YkH5G/1/

著者プラグインによる:https ://github.com/fancyapps/fancyBox/issues/410

于 2012-11-21T14:47:11.750 に答える