2013-10-07 181 views
3

我試圖製作一個自定義的Twitter按鈕,當點擊時會抓取當前頁面的頁面URL,這顯然會根據它出現在哪個頁面上而改變,與默認共享按鈕不同。但是,我不確定如何將頁面URL傳遞到按鈕。Twitter分享按鈕動態URL分享

這是我迄今jsfiddle

<style type="text/css" media="screen"> 

</style> 
<div id="social-share-container"> 
<div id="custom-tweet-button"> 
<a id="tweetShare" href="https://twitter.com/share?url="+encodeURIComponent(document.URL); target="_blank">Tweet 
    </a> 
</div> 
</div> 

這是一個有點砍死在一起,我與JS很陌生。

回答

2

我建議window.location的 - 這會給你的當前頁面的URL。

問題是你在HTML中使用JS內聯 - 你不能像你想要的那樣做。

我用一些香草js更新了你的小提琴,向你展示了一個更好的方法來做到這一點。

http://jsfiddle.net/4jF5N/1/

var link = document.getElementById('tweetShare'); 
var url = window.location; 

link.addEventListener('click',function(event){ 
    event.preventDefault(); 

    window.open("https://twitter.com/share?url="+encodeURIComponent(url)); 
    alert(url) 
},false); 
+0

它似乎並沒有在之後的任何解析儘管如此,不知道這是否是JSFiddle的限制。 – RyanSoper

3

此經過URL和標題與Twitter共享頁面簡單的彈出框:

<script language="javascript"> 
    function tweetCurrentPage() 
    { window.open("https://twitter.com/share?url="+escape(window.location.href)+"&text="+document.title, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false; } 
</script> 

<a class="tweet" href="javascript:tweetCurrentPage()" target="_blank" alt="Tweet this page">Tweet this page</a> 

如果你不希望它在彈出打開框,你可以用這個來代替window.open

window.location.href="https://twitter.com/share?url="+escape(window.location.href)+"&text="+document.title; 
+0

這似乎不起作用... – Xarcell

+0

@Xarcell你可以提供更多關於它不工作的信息嗎?從您的評論中無法知道是否存在實際問題,或者您是否實施了錯誤。這篇文章現在已經差不多三年了,所以Twitter可能會對其服務進行更改,以阻止該服務的運行或需要進行調整。我首先想到的是確保https://twitter.com/share?url=[url]&text=[text]仍然是共享的正確格式。 – wentz