2010-10-06 51 views
1

我有一個片段來創建一個「喜歡」按鈕,我們的新聞網站:如何改變Facebook的「喜歡」按鈕,「推薦」按鈕

<iframe id="likeButton" src="http://www.facebook.com/widgets/like.php?href=" 
     scrolling="no" frameborder="0" 
     style="border:none; width:450px; height:80px"></iframe> 

然而,爲了使其正常工作,因爲按鈕發佈一個錯誤說該按鈕是在一個無效的URL地址,我平添了幾分的jQuery來調整這樣的網址:

<script type="text/javascript"> 
    $(document).ready(function(){  
     var imageFile = $('#likeButton').attr('src'); 
     eval("imageFile = imageFile +"+"window.location.href;");  
     eval("$('#likeButton').attr('src', function(){return imageFile +"+"window.location.href;});"); 
    }); 
</script> 

那據我可以告訴工作。

我想改變按鈕從喜歡推薦和從Facebook的網站知道,我需要追加一個屬性的行動=推薦的URL。但作爲一個新手,我一直無法添加它,所以它的工作原理。我如何添加屬性到URL?

+0

在添加action = recommend之前,您可能還需要去除原始動作= like參數。來自FB的默認Widget代碼在查詢字符串中包含action = like。 (意思是根據Josh的回答發佈這個) – nopuck4you 2010-10-06 18:46:33

回答

2

首先,在這種情況下,您沒有業務電話eval。有必要評估eval是非常罕見的,應該避免不惜一切代價。話雖如此,請看下面的代碼。我只是使用標準查詢字符串語法構建新的src屬性來添加您的新動作值,然後對其進行設置。相當不言自明......

$(document).ready(function(){ 
    var iframe = $("#likeButton"); 
    var newSrc = iframe.attr("src"); 
    newSrc += encodeURIComponent(location.href); 
    newSrc += "&action=recommend"; 

    iframe.attr("src", newSrc); 
}); 

如果在那裏有什麼東西沒有意義給你,隨時問,我會進一步解釋。

+1

這應該是有效的,但是,我可能會建議你將'var img'改爲其他名字嗎? '#likeButton'是'