`
ihyperwin
  • 浏览: 424971 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

html a标签的href target onclick

 
阅读更多
在Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression

expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是选的,但是写上去是一个好习惯。 (实现版本 Navigator 3.0)

你以使用 void 操作符指定超级链接。表达式会被计算但是不会当前文档处装入任何内容。

下面的代码创建了一个超级链接,当用户以后不会发生任何事。当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果。

<A HREF="javascript:void(0)">单此处什么也不会发生</A>

下面的代码创建了一个超级链接,用户单时会提交表单。

<A HREF="javascript:void(document.form.submit())">
单此处提交表单</A>

下面代码则执行了subgo()函数,

<a href="javascript:void(0)" onclick="subgo()">点我</a>

在这里,javascript:void(0),没启实质上的作用,它仅仅是一个死链接,执行的函数是subgo()。

<a href="#" onclick="subgo()">点我</a>与<a href="javascript:void(0)" onclick="subgo()">点我</a>区别。

实际上 #包含了一个位置信息默认的锚是#top 也就是网页的上端 ,而javascript:void(0) 仅仅表示一个死链接,没有任何信息。所以调用脚本的时候最好用void(0)

    href一般是指向一个URL地址,也可以调用javascript ,如href="javascript:xxx();",文档中推荐这样写:<a href=" javascript:void(0)" onclick="xxx();">xx</a>,但是这种方法在复杂环境有时会产生奇怪的问题,尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。

    我们知道链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接),如果不想执行href 属性下的动作执行,onclick 需要要返回 false ,一般是这样写onclick="xxx();return false;".


——————————————————————————————————————————————————————————————
    <a href="javascript: dosomething();" > </a>

在chrome 中会执行dosomething(),没有任何问题,

在IE中会打开一个路径为javascript: dosomething();新窗口并报错

显然 这不是return false一类的问题

经过测试 我总结一下 href  javascript target onclick 执行顺序 浏览器兼容问题

<a onclick=”doclick();”  target=”_blank”  href=”javascript: dosomething();” > </a>

在我测试的所有浏览器中 onclick 总是优先执行

在chrome safari中, 如果href 中是javascript:语句 target 就被忽略

在ie firefox中, 先执行target 然后执行href , 换句话说 href 中的javascript 是基于 target的 context

就变成了 target.href

在本例中 就是在_blank窗口中执行 dosomething() 函数,新窗口是空窗口当然不会有这个函数的定义 所以会报错

流程是    先执行onclick 然后打开target 然后在target中执行dosomething()

用iframe的情况很明显

    <script>
    function did(){
    alert('current page');
    }

    function click(){
    alert('click');

    }
    </script>

    <a target="newframe" onclick="click();"  href="javascript: did();">点我1</a>

    <iframe id="newframe" name="newframe" src="test.html"></iframe>

    

以上代码在chrome, safari中 target 被忽略 先执行

alert('click')

然后

alert('current page');

在IE, firefox中 情况不一样

先执行

alert('click') 然后会执行newframe中的did()函数

所以target很重要 而且不可以在href中更改target 的值因为target会先于href执行

完全可以在onclick中控制 target 和href  因为onclick 是最优先执行的


分享到:
评论

相关推荐

    HTML a 标签的 target 属性.doc

    HTML a 标签的 target 属性.doc

    a标签的target链接指向iframe的方法

    主要介绍了a标签的target链接指向iframe的方法,切记不是用Id来做指向的目标而是name,需要的朋友可以参考下

    html标签a的target属性的用法

    1:如果使用标签&lt;a&gt;来链接到一个页面的话,target属性的作用,相信大家都知道。就是指对链接的页面以怎么样的形式展现出来,target常用的值有:_blank(以新弹出一个浏览器窗口打开链接的页面)、_self(在原来的窗口中...

    Vue 中 a标签上href无法跳转的解决方式

    使用vue-router 在IE下 a标签里的路由不跳转,火狐,chrome工作正常。 解决: 在App.vue 里增加判断IE浏览器手动修复…… export default { name: 'App', mounted(){ function checkIE(){ return '-ms-scroll-...

    html实现a元素href的URL链接自动刷新或新窗口打开功能

    使用a标签的target属性特性: 无论是a链接元素还是form表单元素都有一个名叫target的属性,支持的值包括下面这些: _self:默认值。当前浏览器上下文。 _blank:通常是一个新的标签页,但是用户可以配置浏览器,...

    a标签的target指向iframe的name和id的区别

    个a标签的target指向的是name为myFrameName的iframe,不适宜用Id来做指向的目标,一个小细节,花了不少时间,有类似问题的朋友可以参考下

    用好href的target属性

    用好href的target属性

    Html标签大全.txt

    Html标签大全 &lt;a&gt;&lt;/a&gt; 超文本链接 &lt;a href="URL"&gt;&lt;/a&gt; 创建超文本链接 ,其中的url为链接目标地址 &lt;a href="mailtEMAIL"&gt;&lt;/a&gt; 创建自动发送电子邮件的链接 &lt;a name="name"&gt;&lt;/a&gt; 创建位于文档内部的书签 &lt;a href=...

    Get href target-crx插件

    语言:日本語 html页面href元素目标要在新的标签中打开并打开Chrome扩展函数 要在另一个选项卡上打开链接的扩展名。 我是由锚瞄准的目标。

    HTML基本标签属性总结

    HTML基本标签属性总结 部分内容如下:(下载可看全文) &lt;meta http-equiv="content-type" content="text/html" charset="gb2312"&gt; 4种块结构:div-ul(ol)-li 导航菜单 div-dl-dt-dd 图文混编 table-tr-td 规整...

    html的frameset和target的应用

    代码可用,html的frameset和target的应用

    Tracking a Moving Target in Cluttered Environments

    Tracking a Moving Target in Cluttered Environments with Ranging Radios

    CC2430 CC2530 debug时出现“a target cannot be selected ”解决办法及驱动

    用IAR和仿真器给板子下载程序时出现“a target cannot be selected when used in another debug session or in other applications.”解决办法及驱动。

    ASP.Net电子商务网站后台模板

    &lt;li id="now1a"&gt;&lt;a title="标签管理" href="#" target="content3"&gt;标签管理&lt;/span&gt;&lt;/a&gt; &lt;li id="now1b"&gt;&lt;a title="模板管理" onclick="show_title('生成文件管理')" href="#" target="content3"&gt; 模板管理&lt;/span&gt;...

    HTML利用超链接打开链接文件的方法介绍

    a和href属性HTML用&lt;a&gt;来表示... 比如链接到jb51.net站点首页,就可以这样表示: &lt;ahref&gt;多特软件站jb51.net首页&lt;/a&gt;target属性使用target属性,可以在一个新窗口里打开链接文件。 &lt;ahref=https://www.jb51.netta

    struts中base标签的target属性

    struts 中的base标签中的各个属性。选择在哪个窗口打开连接。

    HTML5 对各个标签的定义与规定:base

    base标签除了全局的属性之外,还有 href、target两个属性。 没有内容值。 interface HTMLBaseElement : HTMLElement { attribute DOMString href; attribute DOMString target; }; base标签用于定义HTML文档中...

    Survey of maneuvering target tracking: II. Ballistic target models

    This paper is the second part in a series that provides a comprehensive survey of the problems and techniques of tracking maneuvering targets in the absence of the so-called measurement-origin ...

    插件集合html

    &lt;a href="http://handuyishe.jd.com/view_search-53374-0-5-1-24-1.html" target="_blank"&gt;全部商品&lt;/a&gt; ;"&gt; ;"&gt;&lt;!--弹出菜单end--&gt; &lt;div class="user_handu_menu_all"&gt;&lt;!--品类--&gt; ...

Global site tag (gtag.js) - Google Analytics