2011-11-03 24 views
1

我剛剛發現iframe version of the Facebook Like button在使用JavaScript創建iframe時並未遵守其查詢參數,而不是直接包含在文檔的HTML中。爲什麼Facebook插入JavaScript時不喜歡它的參數?

請看看這的jsfiddle我創建:

http://jsfiddle.net/qQsCC/

我產生在上面鏈接的URL Like按鈕以及首次列入正是因爲它是所提供的HTML。然後,我將其分解爲需要創建並向DOM添加相同元素的JavaScript代碼。

在「結果」窗口中,您會在頂部看到HTML版本的按鈕,並在下面看到JavaScript創建的版本。儘管src屬性的值(以及所有其他HTML屬性)的值相同,但下面的按鈕似乎不符合我通過的任何參數,例如colorschemefont

有誰知道爲什麼會發生這種情況,或者對我如何避免這種行爲有任何建議?

這裏的用例是,我正在創建包含iframe版本的「贊」按鈕的HTML廣告;一個要求是廣告最初只能加載50KB的數據,然後在window.onload已經觸發後再加載1MB。由於「Like」按鈕單獨超過50KB,因此我需要在window.onload之後使用JavaScript構建iframe,而不是僅在廣告的HTML中包含元素。

回答

1

當您使用HTML添加網址時,html實體會自動解碼。這不會在javascript中打盹。所以,你需要將它傳遞給javasript如之前的url解碼:

like.src = 'http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.facebook.com%2F&send=false&layout=standard&width=450&show_faces=false&action=like&colorscheme=dark&font=arial&height=35'; 

希望這有助於

更新JSfidle: http://jsfiddle.net/qQsCC/1/

+0

完美 - 問題解決了!謝謝,伊凡! – Bungle

相關問題