在下面的代码中,我很难对网址进行编码。
<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 才能返回页面的当前网址?
答案 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
<a class="button__link" href="#" target="_blank" aria-label="Sharei" id="current_url">Current URL</a>
这很容易使用,如下所示,没有复杂性,我发现的是你没有为href
属性赋值,默认情况下在jquery中它分配回来
现在下面的一个应该适合你的情况,
$("#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编码(只会四个转义 由两个“代理”字符组成的字符序列。