2

Brightcove (ビデオ ホスト) プレーヤーとその API を組み込んだ Facebook アプリを開発しています。Facebook は、安全にブラウジングするオプションをユーザーに提供しますが、これは少し問題を引き起こします。現状では、アプリケーションをプロトコルの 1 つ (http または https) で正しく動作させることはできますが、両方では動作しません。

https://www.facebook.com/atlantafalcons?sk=app_292392080815275 (http:// に変更して、動作していないことを確認してください)

BrightcoveExperiences.js ファイル ソースをhttps://sadmin.brightcove.com/js/BrightcoveExperiences.jsに設定すると、誰かが安全に閲覧していないとエラーが発生します。http://admin.brightcove.com/js/BrightcoveExperiences.jsに設定すると、誰かが安全に閲覧しているときにエラーがスローされます。

安全に埋め込むためのドキュメントはこちら: http://support.brightcove.com/en/docs/publishing-brightcove-player-https-page

ユーザーがどの JS ファイルをロードするかを選択できるように安全に閲覧しているかどうかを検出する方法はありますか、またはユーザーに安全に閲覧するよう強制する方法はありますか? または、このような問題の別の回避策はありますか?

前もって感謝します!

編集: 解決策を思い付くことができました (Google アナリティクスのチェックを推奨してくれた scibuff に感謝します):

<script type="text/javascript">
    var bJsHost = (("https:" == document.location.protocol ) ? "https://sadmin." : "http://admin.");
    document.write(unescape("%3Cscript src='" + bJsHost + "brightcove.com/js/BrightcoveExperiences.js' type='text/javascript'%3E%3C/script%3E"));
</script>
4

2 に答える 2

2

スキーム相対 URI を使用します。

//admin.brightcove.com/js/BrightcoveExperiences.js

また、SSL インスタンスと非 SSL インスタンスに異なるホスト名を使用しないでください。

(または、非 SSL 要求の場合、sadmin が admin への 301 リダイレクトで応答するようにします)

于 2012-03-02T16:56:35.950 に答える
0

私はクエンティンの提案に行きます。ただし、あなたの提案を使用すると、次を使用できます。

// window, top, self, document, others?
window.location.protocol

言い換えると:

if (window.location.protocol == 'http:') {
    document.body.innerHTML = 'The page is using the http (non-secure) protocol.';
} else {
    document.body.innerHTML = 'The page is using the https (secure) protocol.';
}

http://jsfiddle.net/3NREg/

必要に応じて、他のウィンドウ/ドキュメント オブジェクトも機能する場合があります。

// window, top, self, document, others?
if (self.location.protocol == 'http:') {
    document.body.innerHTML = 'The page is using the http (non-secure) protocol.';
} else {
    document.body.innerHTML = 'The page is using the https (secure) protocol.';
}

http://jsfiddle.net/3NREg/1/

于 2012-03-02T16:56:12.767 に答える