6

我正在尝试制作一个自定义 Twitter 按钮,该按钮将在单击时获取当前页面的页面 URL,这显然会根据它出现在哪个页面上而改变,这与默认的共享按钮不同。但是,我不确定如何将页面 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 很不熟悉,所以这有点被破解了。

4

3 回答 3

7

这会将 url 和标题传递给带有 twitter 共享页面的简单弹出框:

<script language="javascript">
    function tweetCurrentPage()
    { window.open("https://twitter.com/share?url="+ encodeURIComponent(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="+ encodeURIComponent(window.location.href)+"&text="+document.title;

更新: escape()功能已弃用,替换为encodeURIComponent()

于 2014-03-17T20:57:49.953 回答
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);
于 2013-10-07T14:51:13.907 回答
0

看看document.location:
location.hostname
location.pathname
http://www.w3schools.com/jsref/obj_location.asp

于 2013-10-07T14:44:44.390 回答