超链接中的当前页面URL

时间:2016-08-11 03:48:56

标签: javascript jquery

在下面的代码中,我很难对网址进行编码。

<a class="button_link" href="https://somewebsite.com/submit/?url=http%3A%2F%2Fsomecrazyurl.com" target="_blank" aria-label="Sharei">

相反,我想要这样的东西:

<a class="button_link" href="https://somewebsite.com/submit/?url=returnpageurl()" target="_blank" aria-label="Sharei">

编辑:对于我使用的记录

$(location).attr('href');

然而,没有任何回报。

是否有跨浏览器Javascript 才能返回页面的当前网址?

3 个答案:

答案 0 :(得分:1)

要获取路径,您可以使用:

  var pathname = window.location.pathname; // Returns path only
  var url      = window.location.href;     // Returns full URL

您可以使用jQuery的属性选择器。

var linksToGoogle = $('a[href="http://google.com"]');

或者,如果您对以某个URL开头的链接感兴趣,请使用attribute-starts-with选择器:

var allLinks = $('a[href^="http://google.com"]');

答案 1 :(得分:1)

如果您正在寻找浏览器兼容性解决方案,请使用

window.location.href 

其中document.URL在浏览this

时遇到了Firefox问题
<a class="button__link" href="#" target="_blank" aria-label="Sharei" id="current_url">Current URL</a>

这很容易使用,如下所示,没有复杂性,我发现的是你没有为href属性赋值,默认情况下在jquery中它分配回来

  

https://somewebsite.com/submit/?url=returnpageurl()

现在下面的一个应该适合你的情况,

 $("#current_url").attr("href",window.location.href );

答案 2 :(得分:0)

使用window.location.href JavaScript窗口属性很容易实现。

Html示例:

<a href="https://somepage.com" id="link1">my link</a>

的Javascript

var a = document.getElementById('link1');
a.href = a.href + '?returnUrl=' + encodeURIComponent(window.location.href);

使用jQuery:

$('#link1').attr('href', $('#link1').attr('href') + '?returnUrl=' + encodeURIComponent(window.location.href));

请注意使用内置函数encodeURIComponent(str) reference.

  

encodeURIComponent()函数对统一资源进行编码   标识符(URI)组件通过替换某些特定的实例   字符由一个,两个,三个或四个表示的转义序列组成   字符的UTF-8编码(只会四个转义   由两个“代理”字符组成的字符序列。