当前位置: 首页 > 编程笔记 >

巧方法 JavaScript获取超链接的绝对URL地址

仉联
2023-03-14
本文向大家介绍巧方法 JavaScript获取超链接的绝对URL地址,包括了巧方法 JavaScript获取超链接的绝对URL地址的使用技巧和注意事项,需要的朋友参考一下

对于Web程序员来说,处理简单的URL格式也许会成为一场噩梦。试想一下,一个网址里有很多组成部分都会影响你对它的解析方法:

····是否以/字符开头
····是否以//开头
····是否以?号开头
····是否以#号开头
…等等
当你想要这个地址的绝对地址时,如何判断处理和解析?它有可能是http协议的,还可能是https协议的。够头痛吧。幸运的是,我们有个简单的方法来确定它的绝对地址,就是创建一个A元素来辅助完成这个任务!

JavaScript代码

这里我将使用一个返回函数的JavaScript函数,这样做有很多好处,下面会讲。

var getAbsoluteUrl = (function() {
 var a;

 return function(url) {
 if(!a) a = document.createElement('a');
 a.href = url;

 return a.href;
 };
})();

这个函数看起来有些复杂,它先将一个函数赋予一个变量,而这个函数里有另外一个函数,还有一个预先定义的变量。有人可能会问,为什么要内嵌一个函数,是否可以简化成这样:

var getAbsoluteUrl = function(url) {
 var a = document.createElement('a');
 a.href=url;
 return a.href;
}

当然这种简单的写法也不能算错,但不够完美,因为内嵌一个函数的做法虽然增加了代码的复杂度,但它能保证A元素只被创建一次,而且可以重复利用,这样节省了时间和内存

也许有人会提出另外一个问题,疑惑嵌套的第二个函数里有个if判断,为什么需要它,干嘛不写成下面这样:

var getAbsoluteUrl = (function() {
 var a = document.createElement('a');

 return function(url) {
 a.href = url;

 return a.href;
 };
})();

这自然也是一种可以运行的写法,而且功能不会有任何错误。但微妙的是,如果没有if判断语句,在定义这个函数的时候,即使这个函数没有被任何代码调用,A元素也会被初始化,而有了if判断语句,A元素会在被实际用到时才被创建,不会浪费内存和CPU。

好了,有了这个方法,不论你传入它的是什么样的URL地址,它都会返回绝对地址。

大家试一下吧!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 我使用的是jedis版本2.8.0和Spring Data redis版本1.7.5。和redis服务器版本2.8.4。 我有多个缓存得到保存在redis和获取请求是从redis完成的。我正在使用spring data redis API来保存和获取数据。 所有的save和get都可以正常工作,但偶尔geting会低于exception: 我的redis配置类: 有没有人面对过这个问题或者对此有任

  • 本文向大家介绍C#利用System.Uri转URL为绝对地址的方法,包括了C#利用System.Uri转URL为绝对地址的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#利用System.Uri转URL为绝对地址的方法。分享给大家供大家参考。具体分析如下: 在使用ASPOSE.Word生成Word文档时可以通过InsertHtml(html)来将图文信息写入Word文档(图片内嵌)

  • 本文向大家介绍Android实现捕获TextView超链接的方法,包括了Android实现捕获TextView超链接的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android实现捕获TextView超链接的方法。分享给大家供大家参考,具体如下: 这里分享一篇捕获TextView超链接的文章,希望对大家有所帮助,我终于在歪路上回归正途了。这个捕获TextView超链接应该算是比较常

  • 我检查了下面的代码以获取ipv6地址,这段代码返回了全局单播地址,比如“2001:x:x…”。但我想获得链接本地地址,比如“fe80:…”。如何使用以下代码获取链接本地地址?

  • 本文向大家介绍python获取指定网页上所有超链接的方法,包括了python获取指定网页上所有超链接的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python获取指定网页上所有超链接的方法。分享给大家供大家参考。具体如下: 这段python代码通过urllib2抓取网页,然后通过简单的正则表达式分析网页上的全部url地址 希望本文所述对大家的python程序设计有所帮助。

  • 本文向大家介绍使用jQuery mobile库检测url绝对地址和相对地址的方法,包括了使用jQuery mobile库检测url绝对地址和相对地址的方法的使用技巧和注意事项,需要的朋友参考一下 path.isAbsoluteUrl() 检测绝对网址 如果一个URL是绝对的实用方法。如果URL是绝对的这个函数返回一个布尔值 true ,否则返回 false。   path.isRelativeUr