オンラインクレジットカード決済を扱うサイトを作りました。支払いプロセスの一環として、クレジットカードデータを検証するために外部のセキュリティサービスと連携するiframeが私のサイトに必要です。フォームの投稿で使用する特定の情報をこのiframeに渡す必要があります。次のように、このiframeで関数を呼び出すことにより、自分のサイトからこれを行います。
var frame = window.frames["SecureFrame"];
frame.SetInnerFormValues(...);
これは私の開発環境では正常に機能します。ただし、私のサイトは、クライアントサイトでもiframeとして実行する必要があります。したがって、最終的に、クライアントサイトには支払いインターフェイスを指すiframeがあり、安全なサービスを指すiframeがあります。もちろん、これらのiframeは両方ともSSLを使用しています。
これにより、クライアント側の複数のネストされたフレームで問題が発生するようです。(まあ、Chromeは正常に動作しますが、Firefoxは動作しません)
エンドユーザーがクライアントサイトにいる場合、上記のJSコードを実行するとエラーが発生します。Firefoxは、「TypeError:frame.SetInnerFormValuesは関数ではありません」というエラーをスローします。JSコンソールでコードを実行して、セキュアフレームでこのSetInnerFormValues関数にアクセスしようとしましたが、何かにアクセスしようとすると、「エラー:プロパティ'...'へのアクセスが拒否されました」というメッセージが表示されます。最初に自分のサイト。
どうか、忍者のSO、私はあなたの助けが必要です!