【问题标题】:Does JavaScript have any functionality for building URLs?JavaScript 是否有任何构建 URL 的功能?
【发布时间】:2017-11-09 21:06:14
【问题描述】:

我有一个在 BootStrap 网格中布置的卡片(例如扑克牌)的索引视图。每张卡片都在一个 div 中,每个 div 都有一个 jQuery click 处理程序,以打开任何被点击的卡片(卡片 div)的详细信息页面。所以从索引到详细视图的重定向都是使用这个(相当臭的)JavaScript完成的:

var showDetail = function (index) {
    const newUrl = "@($"http://{Model.HostName}{Url.Action("Details", "Card")}/")" + index;
    window.location = newUrl;
};

我不喜欢依赖 Razor 代码块给我主机名和 url 的路径。 JavaScript 是否有任何功能可以用来实现与上述狡猾的代码相同的功能?

【问题讨论】:

  • @gurvinder372 URL ctor 需要一个 url 参数,如果它的值是一个相对 URL,它还需要一个 base URL 参数。要提供该基本 url,我仍然需要使用 $"http://{Model.HostName},我不需要任何硬编码。如何针对 SSL 进行调整?
  • @Satpal 如果 IE 不支持它,我不在乎。我不支持IE。虽然 Edge 支持它,但 IE 可能会在这个项目完成时被弃用。
  • IE 可能会被弃用,这是我今天头条最好的东西。您可以即时创建锚点并读取其属性$('<a>', { "href" : relativeUrl}).prop('href ')
  • @Satpal 是的,对不起,我误读了你关于主播的第一条评论。

标签: javascript jquery html


【解决方案1】:

您可以动态创建锚点并读取其href 属性。

console.log($('<a>', {
  "href": '/test/for/relative/url'
}).prop('href'))
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

而且,还可以使用URL API

【讨论】:

  • 谢谢。我今天真的学到了一些关于 jQuery 的相当深奥的东西。
  • @ProfK,您将使用 vanilla js 获得相同的结果。我很懒
  • 既然有 jQuery 的瑞士巧克力,为什么还要使用香草?
猜你喜欢
  • 2021-08-20
  • 2021-11-23
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 2022-07-11
  • 2011-04-08
  • 2016-10-27
相关资源
最近更新 更多