2010-10-06 54 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'是'