在javascript中创建新的Location对象
是否可以在javascript中创建新的Location对象?我有一个url作为字符串,我想利用javascript已经提供的内容来访问它的不同部分 下面是我正在谈论的一个例子(我知道这不起作用):在javascript中创建新的Location对象,javascript,url-parsing,Javascript,Url Parsing,是否可以在javascript中创建新的Location对象?我有一个url作为字符串,我想利用javascript已经提供的内容来访问它的不同部分 下面是我正在谈论的一个例子(我知道这不起作用): 这样做是可能的,还是我必须自己创建这个对象?您可以在正则表达式中解析它,以获得匹配的部分。。。我现在没有完整的代码,但可以使用它来获取querydata: var myUrl = window.location.href; var matches = myUrl.match(/([^\?]+)\?(
这样做是可能的,还是我必须自己创建这个对象?您可以在正则表达式中解析它,以获得匹配的部分。。。我现在没有完整的代码,但可以使用它来获取querydata:
var myUrl = window.location.href;
var matches = myUrl.match(/([^\?]+)\?(.+)/);
var queryData = matches[2];
matches[0]是完整字符串,matches(1)是URL的第一部分(直到?)。。。如果需要,您可以构建一个正则表达式来解析字符串url的每个部分
您还可以使用已经存在的许多库中的一个来实现此目的。您可以使用锚元素来提取url部分,例如:
var url = document.createElement('a');
url.href = "http://www.example.com/some/path?name=value#anchor";
var protocol = url.protocol;
var hash = url.hash;
alert('protocol: ' + protocol);
alert('hash: ' + hash);
它适用于所有现代浏览器,甚至IE 5.5+
举个例子。你可以利用锚元素的力量
var aLink = document.createElement("a");
aLink.href="http://www.example.com/foo/bar.html?q=123#asdf";
alert(aLink.pathname);
使用这个标准怎么样
警告:此界面有点新,因此,如果您没有使用,请检查并在目标浏览器上进行测试。我不知道您可以这样做。整洁。+1我正在输入的内容。
元素实现位置
URL分解属性可以追溯到最早的JavaScript版本,并且在任何地方都受到支持。它(终于)在HTML5规范+1中实现了标准化。同上。我也不知道
实现了位置。我想我试过一次,然后发现对于IE,我需要在它工作之前将其添加到DOM中。也许我需要再试一次。一个重要的注意事项是:Internet Explorer似乎有一个bug,它在这样的对象上忽略了路径名属性的前导斜杠。您可以通过以下操作对其进行规范化:url.pathname=url.pathname.replace(/(^\/?)/,“/”代码>只要您不需要支持Internet Explorer,这绝对是最好的解决方案。URL接口使用所有相同的属性名作为位置,因此它完全向后兼容,但它还添加了一个非常有用的searchParams
属性。不要忘记newURL(
中的new
)。
var aLink = document.createElement("a");
aLink.href="http://www.example.com/foo/bar.html?q=123#asdf";
alert(aLink.pathname);
var url = new URL("http://www.example.com/some/path?name=value#anchor");
var protocol = url.protocol;
var hash = url.hash;