有时我们想实现这样一个功能,点击一个链接,如果这个链接浏览器已经打开过,则刷新已经打开的链接窗口;如果这个链接没有打开过,则使用新窗口打开这个链接页面。

这是一个非常好的体验增强功能,可以有效避免浏览器选项卡中打开重复多余的页面。

关键是如何实现呢?

使用a标签的target属性特性:

无论是a链接元素还是form表单元素都有一个名叫target的属性,支持的值包括下面这些:

  • _self:默认值。当前浏览器上下文。
  • _blank:通常是一个新的标签页,但是用户可以配置浏览器,是否在新窗口打开。
  • _parent:当前浏览器上下文的的父级上下文,如果没有父级,则行为类似_self。
  • _top:最顶级的浏览器上下文。如果没有祖先上下文环境,则行为类似_self。

实际上,target还有一个隐藏特性,那就是可以指定为具体的URL地址或者任意自定义的名称。

例如:

<a href="http://www.baidu.com" target="http://www.baidu.com">空白页</a>

此时,如果浏览器已经有标签页的地址是blank.html,则点击上面的链接并不会打开新窗口,是直接刷新已经打开的blank.html;如果浏览器中没有地址是blank.html的标签页,则此时target属性的行为表现类似'_blank'。

也就是说,我们要想实现链接地址自动刷新和新窗口打开的这个需求,知道设置链接元素和表单元素的target属性值为目标URL地址值就好了。

因此,如果想要实现所有的搜索结果页都使用一个标签页选项卡,需要使用其他办法,很简单,指定为相同的值即可,例如:

<a href="blank.html?s=1" target="_search">空白页?s=1</a>
<a href="blank.html?s=2" target="_search">空白页?s=2</a>

可以看到,href="blank.html?s=1"和href="blank.html?s=2"会指向同一个页面,不会打开俩个新窗口。

要想实现a元素href链接自动刷新或新窗口打开的功能,只需要设置target属性值和href属性值一样就好了。

这个特性IE浏览器,Firefox浏览器,以及Chrome浏览器都是支持的,放心使用。

html实现a元素href的URL链接自动刷新或新窗口打开的更多相关文章

  1. 【转载】实现a元素href URL链接自动刷新或新窗口打开

    又是我偶像的新文,这个小技巧的用户体验真的非常非常棒! 文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/ 原文链接:https://www.zhangxinxu ...

  2. 让你的wordpress在新窗口打开链接

    在使用wordpress过程中笔者发现还有一些不太完善的地方,没有充分考虑到用户体验.所以,在使用wordpress建博之初,我们有必要对wordpress进行一次小改造,让wordpress更个性. ...

  3. 如何用CSS实现在新窗口打开链接?

    *如何用CSS实现在新窗口打开链接? <style type="text/css"> <!-- .target2 a:active {test:expressio ...

  4. javascript新窗口打开链接window.open()被阻拦的解决办法

    场景是ajax提交,比较后端效验数据,需要用户登录,提示后并需要新窗口打开登录的链接,使用window.open(url);往往会被浏览器认为是广告而被拦截. data.url是ajax返回的链接地址 ...

  5. jquery新窗口打开链接

    第一种:下面的代码是针对m35ui这个样式下的a都是在新窗口打开    <script type="text/javascript">  jQuery(document ...

  6. router-link 返回上页 和 新窗口打开链接

    1.如果使用了Vue-router的话,就可以用 this.$router.go(-1) 实现返回: 2.如果没使用vue-router,就可以用 window.history.go(-1) 实现返回 ...

  7. location.href 本窗口与window.open 新窗口打开用法

    二种新窗口打开的区别: window.open("URL",'top'); 只是表示打开这个页面,并不是打开并刷新页面: window.location.href="UR ...

  8. 网页中<a>标签新窗口和location.href 新窗口打开

    在网页制作过程中,经常遇到新窗口打开,一般是a超级链接或者location.href 新窗口打开形式,下面分别讲述两种之间的不同方式 1,a标签 新窗口 添加属性 target="_blan ...

  9. select中想要加a链接 并且新窗口打开

    //新窗口打开 <select id="" onchange="window.open(this.value)"> <option value ...

随机推荐

  1. Python 简明教程 --- 22,Python 闭包与装饰器

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. 目录 本节我们来介绍闭包与装饰器. 闭包与 ...

  2. python入门009

    目录 四.列表 1.定义:在[]内,用逗号分隔开多个任意数据类型的值 2.类型转换:但凡能被for循环遍历的数据类型都可以传给list()转换成列表类型,list()会跟for循环一样遍历出数据类型中 ...

  3. Scala 面向对象(二):package 包 (一) 入门

    1 Scala包的基本介绍 和Java一样,Scala中管理项目可以使用包,但Scala中的包的功能更加强大,使用也相对复杂些,下面我们学习Scala包的使用和注意事项. 2 Scala包快速入门 使 ...

  4. 数据可视化之powerBI基础(八)PowerBI的表格,你真的会用吗

    https://zhuanlan.zhihu.com/p/64413000 在PowerBI的可视化对象中,还有两个「表格」对象,表格的作用不仅可以在报表提供明细数据,还经常用来测试度量值的返回结果, ...

  5. 目录(Django开发)

    python网络编程-socket编程 Django 笔记分享 Django之[基础篇] Django之[进阶篇] Django之 url组件 Django之 Models组件 Django之 adm ...

  6. Python之爬虫(七)正则的基本使用

    什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑. 正则并不是pyth ...

  7. It's time for Django

    本节内容 Django流程介绍 Django url Django view Django models Django template Django form Django admin Django ...

  8. Django 【基础篇】

    前戏 python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #cod ...

  9. 基于three.js的全景

    直接上代码: <!DOCTYPE html><html> <head> <title>three.js css3d - panorama</tit ...

  10. maven自动创建项目目录骨架

    方法一: 1:打开命令窗口 在要创建项目的路径下按住H2SIT ,然后点击右键  ,在弹出菜单中选择 在此处打开命令窗口(W) 2:目录创建 方法二: