自定义共享图标 - 获取网址,编码uri&更换

时间:2015-01-26 15:03:09

标签: javascript jquery replace social-networking

我在网站的每个页面上都有4个图标来共享您所在的页面。我想获取您所在页面的URL,对其进行编码,然后将其插入每个按钮的href属性中。

var url = window.location.href;
var encodedUrl = encodeURIComponent(url);
var urlRegEx = new RegExp(encodedUrl,'g');

$(".social").each(function () {
    $(this).html(this.html().replace('sharethisurl',urlRegEx));
});

<div id="share">
    <a class="social" href="http://pinterest.com/pin/create/button/?url=sharethisurl&media=sharethisjpg&description=" target="_blank"><img src="images/pinterest.png" alt="pin this" /></a>
    <a class="social" href="http://www.houzz.com/imageClipperUpload?link=sharethisurl&source=button&hzid=28938&imageUrl=sharethisjpg" target="_blank"><img src="images/houzz.png" alt="add to houzz" /></a>
    <a class="social" href="https://www.facebook.com/sharer/sharer.php?u=sharethisurl" target="_blank"><img src="images/facebook.png" alt="like this" /></a>
    <a class="social" href="https://twitter.com/share?url=sharethisurl" target="_blank"><img src="images/twitter.png" alt="tweet this" /></a>
</div>

1 个答案:

答案 0 :(得分:2)

您需要的是

var url = window.location.href,
    encodedUrl = encodeURIComponent(url);

$(".social").prop('href', function(index, current){
    return current.replace(/sharethisurl/g, encodedUrl);
});

代码中的一些问题

  • 正则表达式用作在使用replace方法时找到的模式(所以它应该是第一个参数
  • html()返回元素的html内容(它不会返回匹配的实际标记,只返回其子节点