(译者注: 本文解决的是按 Ctrl键时使用JS打开新页面的问题)
在简化的HTML5规范中,允许在 A 标签内包含多个 DIV 和/或其他块级元素. 现在只要用 <a> 标签包住块元素,就能搞定原来需要用JavaScript来监听并调用 window.location 实现页面跳转(redirect)功能.
但使用<a>标签的这种包装形式也有不好使的情况 —— 例如,某个块元素(block)内还有一些 <a> 标签, 这种情况下我们只想在点击parent中<a>以外的其他部分时才跳转到一个给定的地址。
当然,像下面这样用一个简单的listener 也能实现我们的需求:
someElement.addEventListener('click', function(e) { // URL地址是什么都行,或者你也可以使用其他的代码来指定. // 此处用的是该元素的 `data-src` DOM属性(attribute) window.location = someElement.get('data-url'); });
…但这有时会有很糟的用户体验, 当按住CTRL键(Mac是COMMAND键),再用鼠标点击时,它会在同一个(标签页)窗口内打开链接。知道有这个问题,你肯定想到了该如何去解决.我们修改一小点代码就能达成这个目的,赶快花点时间去修复你的listener吧:
someElement.addEventListener('click', function(e) { // 获取URL var url = someElement.get('data-url'); // 判断是否按下了CTRL键 if(e.metaKey || e.ctrlKey || e.button === 1) { window.open(url); } else { window.location = url; } });
原文作者已经在 http://davidwalsh.name/ 网站上实现了这个功能,在使用window.location进行页面重定向时你也应该记得这一点。这是一个很小的代码改进,但对可用性的提高却是非常重要的!
做web app,一个无法避开的问题就是转场动画;web是基于链接构建的,从一个页面点击链接跳转到另一个页面,如果通过有刷新的打开方式,用户要面对一个空白的页面等待;如果通过无刷新的方式,用Javascript移入DOM节点(常见的SPA解决方案),会碰到很高的性能挑战:DOM节点繁多,页面太大,转场动画不流畅甚至导致浏览器崩溃; mui的解决思路是:单webview只承载单个页面的dom,减少d
本文向大家介绍AngularJS 打开新的标签页实现代码,包括了AngularJS 打开新的标签页实现代码的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 总结 以上所述是小编给大家介绍的AngularJS 打开新的标签页实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!
ap.pushWindow(OPTION | url) pushWindow 用来打开一个新的页面,自带转场动画。可直接传入一个字符串作为 OPTION.url 参数。 OPTION 参数说明 参数 类型 必填 描述 url String 是 要打开的页面url data Object 否 url的参数,会以 query string 跟在 url 后面。在打开的新页面里可以用 ap.parseQ
pushWindow pushWindow用来打开一个新的页面,系统自带转场动画。不允许跨appId打开其他离线应用的虚拟域名页面(可换用startApp接口)。 scheme跳转请尽量使用location.href而不是pushWindow。 与location.href的区别,类同于PC浏览器的新开标签页,每个window都是一个新的标签页,因此原页面仅仅是被压到后台,状态始终保持,JS也会继
比如我点击某个链接要打开a页面,要判断是否存在已打开的a页面,这步我使用postMessage来实现通讯,可以实现判断是否已打开,但是要怎么切换到已打开的a页面吗?
我试图编码一个简单的键盘,并想实现上述4个键。在我的文件中,我定义了如下的布局- 我一直在中使用ASCII代码。但是我不知道如何处理Ctrl、Alt、Delete和Shift键。我使用作为backspace。但不确定如何实现delete键。 编辑:如果有人能在箭头键上加入一些指针,那也会很有帮助。