2010-08-27 137 views
9

在一個電子商務網站,我維護,我加入了Facebook的「喜歡」按鈕,按照說明操作:Facebook的「喜歡」按鈕中斷HTTPS/SSL

http://developers.facebook.com/docs/reference/plugins/like

我使用iframe的方法:

<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" 
    scrolling="no" frameborder="0" style="border:none; overflow:hidden; 
    width:450px; height:80px;" allowTransparency="true"> 
</iframe> 

它的工作原理,但如果客戶碰巧登錄到她的帳戶,她得到了臭名昭著的「mixed content warning

是否有方式使用相同的Facebook'Like'按鈕代碼,但在SSL模式下不會插入非https內容的方式?

回答

19

可以避免由不是具體的關於傳輸協議支持SSL域SSL警告。例如而不是包括http://https://,請使用//

代替

<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe> 

使用

<iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe> 
+0

我不知道這個伎倆。它是否適用於所有的交響樂?謝謝你介紹給我。 – 2011-04-15 20:54:48

+2

這不適用於臉書。現在的問題是,實際的圖像只在他們的http網站上。 – Noah 2011-06-27 18:38:56

+0

@諾阿,它爲我工作? @ android-eve當用戶代理將其保留爲空時,它將繼承協議...這個訣竅從早期的瀏覽器日子開始...... – todd 2011-07-08 19:01:42

10

這裏是一個暗示,facebook.com支持SSL)

+1

https://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage% 2Fto%2Flike &佈局=標準& show_faces =真&寬度= 450 &行動=像&色彩方案=光&高度= 80 – 2010-08-27 18:28:58

+0

你指的是取代的 'HTTP' 所有出現在上述'https'與? 如果是這樣,是否會有任何副作用?例如,客戶未登錄時的「混合內容」? 或...這會減慢搜索引擎漫遊爬行? (在上述網站上有數百頁上有這個按鈕,如果答案是'是',這可能會導致SEO的重大問題)。 – 2010-08-27 20:13:56

+3

是的,用https替換http。 Facebook在使用ssl時不會提供任何「混合」內容,所以它應該可以正常工作。搜索引擎不會加載iframe內容。你不是第一個遇到這個問題的人,這就是爲什麼他們同時提供http和https的原因。 – 2010-08-27 20:39:11

0
<iframe src="//www.facebook.com/plugins/follow?href=https%3A%2F%2Fwww.facebook.com%2Fludwika.karuna&amp;layout=standard&amp;show_faces=true&amp;colorscheme=light&amp;width=450&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe> 
+1

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – Bono 2015-03-13 13:54:52

1

可避免由不被具體有關的傳輸協議支持SSL的站點SSL警告。例如而不是包括http://https://,請使用//

而不是

<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe> 

使用

<iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Fl