2012-03-02 127 views
1

我正在開發一個包含我們的Brightcove(視頻主機)播放器及其API的Facebook應用程序。 Facebook給用戶安全瀏覽的選項,這帶來了一點問題。現在,我可以讓應用程序在其中一種協議(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文件加載或有沒有辦法強迫用戶安全地瀏覽檢測?或者是否有另一種解決方法來解決這樣的問題?

在此先感謝!

編輯: 之所以能夠拿出一個解決方案(感謝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> 
+1

看,例如,谷歌分析,甚至Facebook的JS SDK如何添加JavaScript和正確的協議,以HTML( http/https) - 'document.location.protocol' – scibuff 2012-03-02 16:55:43

+0

@scibuff謝謝!在檢查谷歌分析後能夠想出一些東西。編輯原始帖子。 – RGilkes 2012-03-02 17:45:24

回答

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/

2

使用方案相對URI:

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

並沒有爲SSL和非SSL實例使用不同的主機名。

(或已SADMIN和301重定向響應管理員對非SSL請求)

+0

我會推薦這種方法。 – 2012-03-02 17:02:32

+1

此文件由我們的視頻主機託管,而不是本地託管,這樣做的問題是除了協議外,子域也發生變化。 – RGilkes 2012-03-02 17:03:46

+2

'http:// admin.brightcove.com/js/BrightcoveExperiences.js'' https:// sadmin.brightcove.com/js/BrightcoveExperience.js' – RGilkes 2012-03-02 17:04:14