0

別の URL にリダイレクトするために、iframe 内から JavaScript を呼び出しています。

var new_url  = "http://mysite.com/?language=en&origin="
                    + origin +"&destination="+ destination +                    "&Date=" + date;
    }
    //window.location.replace(new_url);
    window.top.location.href = new_url;
    //window.location.assign(new_url);

目的は、同じウィンドウ内でiframeからページを開くことなので、使用しています

window.top.location.href = new_url;

IEではfinrで動作していますが、chromeやFFでは動作していませんが、エラーは発生していません

4

4 に答える 4

3

最新のブラウザには厳格なルールがあり、次の場合にのみ変更できません。

  1. A と B の場所は同じオリジンを持っています。つまり、同じスキーム、ホスト、ポート (HTTP、stackoverflow.com、80 など) を持っています。
  2. B が最上位ウィンドウで、A が B 内のある深さでネストされたフレーム内のウィンドウ (直接の子、子の子など)、または
  3. B は window.open を使用して開かれたウィンドウであり、A は B を開いたウィンドウの位置を変更できます (つまり、B は A によって開かれたポップアップ ウィンドウ、A によって開かれたポップアップ ウィンドウ、またはより深い場所で開かれたポップアップです)、または
  4. B は最上位のウィンドウではありませんが、その親ウィンドウ、またはその親の親ウィンドウ、または同様の量の親子関係で、そのウィンドウと A の位置は同じオリジンです。
于 2013-09-10T05:31:55.840 に答える
1

これだけを試してみてください。トップは必要ありません。

window.location.href = new_url;
于 2013-09-10T05:27:02.110 に答える
1

はい、ケースに window.location.href を使用できます。

しかし、私は2つの違いを説明することを考えました.

window.location.href は、現在のページの場所を返します。

top.location.href (window.top.location.href のエイリアス) は、ウィンドウ階層の最上位ウィンドウの位置を返します。ウィンドウに親がない場合、top はそれ自体への参照です (つまり、window === window.top)。

top は、フレームを扱っているときと、他のページによって開かれたウィンドウを扱っているときの両方に役立ちます。たとえば、次のスクリプトを含む test.html というページがあるとします。

var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');

結果のアラートには、window.location.href が返す about:blank ではなく、test.html へのフル パスが含まれます。

乾杯!!!

于 2013-09-10T05:35:03.417 に答える
1

私はちょうど追加しました

window.event.returnValue = false;

リダイレクトする前に、すべてのブラウザで動作しています

于 2013-09-10T05:44:38.890 に答える