html 如何共享URL并将URL更改复制到剪贴板

41zrol4v  于 2022-12-09  发布在  其他
关注(0)|答案(2)|浏览(174)

我有一个Map站点,其URL如下(1):
https://mysite. com/map
当用户在Map上缩放/移动时,URL将根据Map的缩放级别和坐标进行更改,URL将更改为如下所示(2):
https://mysite. com/map#23/119830.34234/180.2346/
我的问题是,当我复制到剪贴板的URL或分享他们在社交网络上只得到第一个URL(1)或URL时刷新网站。我想复制和分享最新的URL更改时,用户缩放/移动Map。
这是我的代码共享和复制到剪贴板

HTML格式

<div class="share">
            <span>Share</span>
            <nav>
                <a class="social-share twitter" href="#"></a>
                <a class="social-share facebook" href="#"></a>
                <a class="social-share zalo" href="#"></a>
                <a class="clipboard" href="#"></a>
            </nav>
        </div>

复制到剪贴板

var temp = $("<input>");
var url = $(location).attr('href');
$('.clipboard').on('click', function() {
  $("body").append(temp);
  temp.val(url).select();
  document.execCommand("copy");
  temp.remove();
  alert('Copied!');
})

分享给社交媒体

setShareLinks();
function socialWindow(url) {
  var left = (screen.width - 570) / 2;
  var top = (screen.height - 570) / 2;
  var params = "menubar=no,toolbar=no,status=no,width=570,height=570,top=" + top + ",left=" + left;
  // params = "";
  window.open(url,"NewWindow",params);
}

function setShareLinks() {
  var pageUrl = encodeURIComponent(document.URL);
  var tweet = encodeURIComponent($("meta[property='og:description']").attr("content"));

  $(".social-share.facebook").on("click", function() {
    url = "https://www.facebook.com/sharer.php?u=" + pageUrl;
    socialWindow(url);
  });

  $(".social-share.twitter").on("click", function() {
    url = "https://twitter.com/intent/tweet?url=" + pageUrl + "&text=" + tweet;
    socialWindow(url);
  });

  $(".social-share.linkedin").on("click", function() {
    url = "https://www.linkedin.com/sharing/share-offsite/?url=" + pageUrl;
    socialWindow(url);
  });
  $(".social-share.zalo").on("click", function() {
    url = "https://sp.zalo.me/plugins/sdk.js/?url=" + pageUrl;
    socialWindow(url);
  });
}
7kqas0il

7kqas0il1#

当用户想要将其复制到剪贴板而不是在页面加载时保持它准备好时,你必须获得URL。

var temp = $("<input>");    
$('.clipboard').on('click', function() {
  var url = window.location.href;
  $("body").append(temp);
  temp.val(url).select();
  document.execCommand("copy");
  temp.remove();
  alert('Copied!');
});
jv2fixgn

jv2fixgn2#

除了T.Shah给出的答案之外,你还应该删除HTML中的href="#",这样当你点击a标签时就会重置位置哈希值。

相关问题