由于hashtag('#')特殊字符存在,URL无法正常工作

时间:2015-03-20 12:34:54

标签: javascript php html angularjs url

我正在尝试实施一个"在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在状态之间导航,因此,浏览器中显示的每个网址都会显示如下:

http:// hostName:port/#/stateName

该主题标签打破了我试图实现的功能,这意味着它将尝试在Facebook上找到名为 stateName 的页面。我想要分享的结果链接变为http:// www.facebook.com/stateName而不是http:// hostName:port/#/stateName.

我的问题是:

是否可以在不删除URL中的#的情况下解决这个问题?

谢谢

2 个答案:

答案 0 :(得分:3)

您可以使用%23

对网址中的哈希进行编码
http:// hostName:port/%23/stateName

变为

http:// hostName:port/#/stateName

可以找到其他编码值here

答案 1 :(得分:0)

您是否可以手动构建URL或对其进行编码?

$scope.currentUrl = encodeURIComponent(document.URL);