我正在尝试实现"在Facebook上共享"功能。这是我的代码:
HTML
<a class="btn btn-social-icon btn-facebook" title="Share this on Facebook"
href="http://www.facebook.com/sharer.php?u={{currentUrl}}"
onclick="openPopupWindow(this.href); return false;">
<i class="fa fa-facebook"></i>
</a>
JavaScript
function openPopupWindow(url) {
window.open(url,'targetWindow',
'toolbar=no, location=no, status=no, menubar=no, scrollbars=yes, resizable=yes,
width=640, height=480');
}
AngularJS
$scope.currentUrl = document.URL;
我使用ui sref在状态之间导航,因此,在我的浏览器中显示的每个URL看起来都是这样的:
http:// hostName:port/#/stateName
这个标签破坏了我试图实现的功能,这意味着它将尝试在Facebook上定位名为stateName的页面。我试图共享的链接变成了http:// www.facebook.com/stateName
,而不是http:// hostName:port/#/stateName.
我的问题是:
是否可以在不删除URL中的#的情况下解决此问题?
感谢
您可以使用%23
对URL中的哈希进行编码
http:// hostName:port/%23/stateName
成为
http:// hostName:port/#/stateName
其他编码值可在此处找到
您可以不只是手动构建URL或对其进行编码吗?
$scope.currentUrl = encodeURIComponent(document.URL);