1

Chrome、Safari、IE、および Opera で正常に動作するコードが少しあります。しかし、何らかの理由で FireFox 18 のみでこの問題が発生します

エラー: プロパティ 'ドキュメント' へのアクセスが拒否されました [このエラーで中断]

window.opener.document.getElementById("creditsTotal").innerText = credits;

問題のコードは次のとおりです (ff18 のみがこの XSS エラーをスローすることに注意してください)。

chat_client.rtmp.update_chat_status = function(){
            //console.log("The overridden method has been called.");
            if (!this.chat.current_chat_user)
                return;

            this.log("Updating chat session.");
            $.ajax({
                url: "{% url parthenon_chat.rtmp.views.update_chat_session %}",
                type: 'POST',
                data: {
                    'session_id': this.chat.session_ids[this.chat.current_chat_user],
                    'csrfmiddlewaretoken': CSRF_TOKEN
                },
                success: function(credits) { 


                    //make sure that credits var is integer and non-negative
                    var intRegex = /^\d+$/;
                    if(intRegex.test(credits)) {
                        console.log("Credits remaining: " + credits);
                       window.opener.document.getElementById("creditsTotal").innerText = credits;
                    }

                }
            });

何かご意見は?同じ XSS 例外が発生するかどうかを確認するために、古いバージョンの ff18 を使用しようとはしていません。

4

2 に答える 2

1

これは Internet Explorer では機能しないことがわかっています。caniuse.com には部分的なものしかありません。

これを参照してください: http://caniuse.com/#feat=x-doc-messaging

つまり、フォールバックが必要です

于 2013-02-18T17:22:08.547 に答える
0

セキュリティ例外は、これが同じドメイン上にあったにもかかわらず、チャット アプリによって子ページから親ページにポートが切り替えられたために発生したようです。これに対する解決策は、html5仕様10.4を使用し、子ウィンドウと親ウィンドウの両方でJavaScriptを書き直すことでした。この XSS 例外を回避するための現在の WHATWG 仕様は次のとおりです

于 2013-02-06T15:24:50.530 に答える