我有一个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);
});
}
2条答案
按热度按时间7kqas0il1#
当用户想要将其复制到剪贴板而不是在页面加载时保持它准备好时,你必须获得URL。
jv2fixgn2#
除了T.Shah给出的答案之外,你还应该删除HTML中的
href="#"
,这样当你点击a标签时就会重置位置哈希值。