gpt4 book ai didi

javascript - 在javascript中使用任意根使相对URL成为绝对

转载 作者:数据小太阳 更新时间:2023-10-29 06:08:38 27 4
gpt4 key购买 nike

假设我在不同域 (mydomain.com) 的页面上,并且相对 url 仅存在于代码中(不存在于 DOM 中)

如何在 javascript 中完全组合两个任意 url?

var a = 'http://example.com/some/path/';
var b = '../other/path/';
var c = magicUrlCombine(a,b);
assert(c == 'http://example.com/some/other/path/');

它也应该适用于

var a = 'http://example.com/some/path/';
var b = 'http://pink-unicorns.com/some/other/path/';
var c = magicUrlCombine(a,b);
assert(c == 'http://pink-unicorns.com/some/other/path/');

编辑:

我正在寻找一个完全通用的函数来组合绝对 url 和任意 url。与浏览器用于解析链接的逻辑相同,但用于不在页面 HTML 中和/或与当前 location.href 无关的 url。

var a = 'http://example.com/a/b/c/';
var b = '../d/e/';
assert(c == 'http://example.com/a/b/d/e/')

var b = '/f/g/';
assert(c == 'http://example.com/f/g/')

var b = 'http://jquery.com/h/i/';
assert(c == 'http://jquery.com/h/i/')

编辑 2:

node.js 有一个 url module具有正确的功能,但我还没有找到在客户端重用它的好方法。 ( how to use node.js module system on the clientside )

我设法破解了它的工作方式,但它并不是一个真正让我觉得适合投入生产站点的解决方案。 Hackety hack

最佳答案

JQuery Mobile 有

$.mobile.path.makeUrlAbsolute(relPath, absPath)

console.log($.mobile.path.makeUrlAbsolute('../d/e/', 'http://example.com/a/b/c/'));
console.log($.mobile.path.makeUrlAbsolute('/f/g/', 'http://example.com/a/b/c/'));
console.log($.mobile.path.makeUrlAbsolute('http://jquery.com/h/i/', 'http://example.com/a/b/c/'));

都给出了预期的结果

关于javascript - 在javascript中使用任意根使相对URL成为绝对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5947038/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com