2011-10-31 92 views
1

我已經在我的(html)網站實施了一個像facebook一樣的按鈕。現在,德國的數據保護法要求網頁選擇加入。其他網站通過不立即顯示Facebook的樣子來做到這一點,而是顯示一個按鈕說「激活Facebook按鈕」,當點擊這個按鈕時,他們用真正的Facebook按鈕代替它。
所以它需要兩次點擊,但這對我來說沒問題。一個例子是this webpage實現選擇在Facebook像按鈕

我知道HTML和PHP,但沒有獲得關於JavaScript(還)的線索。我想知道如何實現這一點:如何在點擊時用臉書替換假按鈕?

回答

2

展望其來源,他們的網站使用了他們稱之爲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

0

試試這個,如果你不想使用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