由于存在标签(';#';)特殊字符,URL无法工作


URL not working due to hashtag ('#') special character present

我正在尝试实现"在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);