3

奇妙な問題。jQuery を使用してセキュアから親.postMessage()にメッセージを送信しています。<iframe>具体的には、私は URL を送信しており、親が URL を受信して​​いることを確認しましたが、window.locationその URL に設定しようとしても何も起こりません。

送信された URL:

http://mydomain.com/shop/507870?nav=ln-474#/shop/507870?gnrefine=1*COLOR_FAMILY*Brown%5E1*CLSR_TYP*Lace-Up%5E

実際の URL:

http://mydomain.com/shop/507870?nav=ln-474#/shop/507870?gnrefine=1*COLOR_FAMILY*Brown%5E1*CLSR_TYP*Lace-Up%5E

それらは一致します。ただし、Chrome で実行すると、次のようconsole.log(loginConfig.redirectURL);になります。

http://mydomain.com/shop/507870?nav=ln-474#/shop/507870?gnrefine=1*COLOR_FAMILY*Brown%5E1*CLSR_TYP*Lace-Up%5E

undefined

だから、私は価値window.locationを得ていると思いundefinedます。

を使用すると 2 つの値が得られる理由について何か考えはありconsole.logますか?

アップデート

論理:

if (message[1] != "") {
                $("#loginDialog").dialog("close");
                 loginConfig.redirectURL = message[1];
                window.location = loginConfig.redirectURL
                console.log('message: '+loginConfig.redirectURL);
}

構成オブジェクト:

var loginConfig = {
redirectURL: ""
}

更なるアップデート:

window.location は、ハッシュのない任意の URL で機能します。そのため、何らかの理由で、ハッシュ付きの URL をロードしません。

4

1 に答える 1

3

コードのこの部分は無効です:

var loginConfig = {
    redirectURL = ""
}

これである必要があります:

var loginConfig = {
    redirectURL: ""
}

これによりエラーが発生し、目的のプロパティで loginConfig が適切に宣言されなくなり、予期しない動作が部分的に説明される場合があります。ブラウザのエラー ログを調べて、エラーが報告されているかどうかを確認してください。

于 2012-07-20T01:26:36.700 に答える