实现选择在Facebook像按钮

问题描述:

我已经在我的(html)网站实施了一个像facebook一样的按钮。现在,德国的数据保护法要求网页选择加入。其他网站通过不立即显示Facebook的样子来做到这一点,而是显示一个按钮说“激活Facebook按钮”,当点击这个按钮时,他们用真正的Facebook按钮代替它。
所以它需要两次点击,但这对我来说没问题。一个例子是this webpage实现选择在Facebook像按钮

我知道HTML和PHP,但没有获得关于JavaScript(还)的线索。我想知道如何实现这一点:如何在点击时用脸书替换假按钮?

展望其来源,他们的网站使用了他们称之为button2iframe功能 - 那就是:

function button2iframe(id,link){ 
     //alert(id); 
     var substr = link.split("?"); 
     var url = substr[0]; 
     substr.reverse(); 
     substr.pop(); 
     substr.reverse(); 
     var params = substr.join("?"); 
     params = params.split("&"); 
     var k; 
     var param = ""; 
     var paramname = ""; 
     for(var k=0; k<params.length; k++) { 
      param = params[k].split("="); 
      if(param.length>1){ 
       if(param.length>2){ 
        paramname = param[0]; 
        param.reverse(); 
        param.pop(); 
        param.reverse(); 
        param[1] = param.join("="); 
        param[0] = paramname; 
       } 
       param[1] = encodeURIComponent(param[1]); 
      } 
      params[k] = param.join("="); 
     } 
     params = params.join("&"); 
     link = url+"?"+params; 
     jQuery(function ($) { 
      $("#"+id).html($('<iframe allowtransparency="true" frameborder="0" scrolling="no" src="'+link+'" id="iframe_'+id+'"/>')); 
     }); 
    } 

这是Facebook的按钮相关的标记是什么样子:

<li class="wpsoptin_facebook" id="wpsoptin_facebook_39429"> 
    <div class="wpsoptin_medium"> 
    <a class="wpsoptin_sharerlink" href="javascript:button2iframe('wpsoptin_facebook_39429','FACEBOOK LIKE BUTTON IFRAM URL GOES HERE')">Facebook aktivieren</a> 
    <div class="wpsoptin_sharerend"></div> 
    </div> 
</li> 

此代码要求您在网站中也包含jQuery。

+0

好耶的JQuery .innerHTML' – david

+0

我只注意到我真的没有任何关于js的线索 - 我甚至不知道把函数放在html文件中的位置:/ – Sam

+0

看起来这些东西进入脚本标签。有道理:)感谢您的解释! – Sam

试试这个,如果你不想使用jQuery的,只是删除了几个线对`的document.getElementById(id)的规定弥敦道安德森很好的答案

//jQuery(function ($) { 
     // $("#"+id).html($()); 

     document.getElementById(id).innerHTML = '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="'+link+'" id="iframe_'+id+'"/>' 

    ///}); 
+0

我不明白:我应该尝试你的代码,当我不想使用jQuery? – Sam

+0

@Sam我发布的代码片段剂量jquery会做什么,但你仍然需要使用Nathan Anderson发布的内容,并注释掉有哪些内容并添加我的代码片段,使得它的剂量变得更大? – david

+0

所以这不是问题的答案,而是Nathan Andersons问题的附录?令人困惑的是,我习惯了SO Answers自立,因为其他答案可能会移动,被删除或更改。 – Sam