2017-02-23 59 views
0

傳遞多個變量javascript函數我想要將變量傳遞給一個js函數:從的onclick鏈接

<script> 

(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/de_DE/all.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

// async init once loading is done 
window.fbAsyncInit = function() { 
    FB.init({appId: 1234567890987, status: false}); 
}; 

function gogogo(data) { 

    FB.ui({ 
     method: 'feed', 
     link: data.url, 
     picture: data.picture, 
     name: data.title, 
     //caption: data.caption, 
     description: data.description 
    }); 
} 

獲取在這裏顯示的所有除說明:

<%= link_to image_tag('icons/social-fb.png'),'#', :onclick=>"gogogo({ url:'#{request.original_url}',title:'#{content.title}',picture:'#{PICTURE_PATH+content.tg_medias.first.media.url(:big)}', description:'#{content.description}' }) ;return false;" %> 

內容.description不起作用.. 謝謝

+0

請不要更新您的問題以消除原來的問題。它使我的回答變得無關緊要,並將資源從將來可能有同樣問題的其他人那裏移除。如果它解決了您的原始問題,請接受我的答案,並在您遇到其他問題後再提出一個新問題。 – nvioli

回答

1

你s應該將一個javascript對象作爲參數傳遞給gogogo函數。試着用

gogogo({url:'#{request.original_url}',title:'#{content.title}'}); 

我假設的事實代替

gogogo(data=(url:'#{request.original_url}',url:'#{content.title}')); 

你的論點的兩個按鍵都是url是一個錯字。

+0

Thanks .. yes a typo..Now我有:<%= link_to image_tag('icons/social-fb.png'),'#',:onclick =>「gogogo({url:'#{request.original_url }',title:'#{content.title}',caption:'#{content.title}',picture:'#{PICTURE_PATH + content.tg_medias.first.media.url(:big)}',desc: '#{sanitize(content.description)}'}); return false;「 %>。所有工作,但不content.description。看來,文本必須處理不同..或HTML標籤可能是不允許的。 – Werner

+0

對不起,我不知道紅寶石,所以我可能是有限的使用。在瀏覽器中顯示的「desc」值是什麼?即紅寶石爲''{sanitize(content.description)}'返回什麼? – nvioli

+0

描述pa:

hello world

,sanitize確保其中沒有'錯誤代碼'。當我提供此值時,彈出窗口不會打開,而我得到:Uncaught SyntaxError:控制檯中無效或意外的令牌 – Werner

0

我在許多項目中都這樣做過。所以我會建議你採取以下方法。

  • 把鏈接
  • 上的ID在視圖

Add following code in a script tag in your view

$(document).ready(function($){ 
    $("a#id_of_that_link").on('click', function(e){ 
     gogogo(#{@prepared_data.to_json}, true, #{@anything_else.to_json}); 
    }); 
}); 

現在,你將在你的函數得到這些PARAMS添加腳本標籤。 讓我知道如果你有任何困惑。

+0

謝謝Pradeep .. – Werner