gpt4 book ai didi

javascript - 独立窗口导航器和事件监听器 - Javascript

转载 作者:行者123 更新时间:2023-12-03 03:08:46 26 4
gpt4 key购买 nike

我是 JavaScript 新手。我正在尝试研究和理解以下部分代码:

if(("standalone" in window.navigator) && window.navigator.standalone){ //1

var node = false;

document.addEventListener('click', function(event) {

node = event.target;

while(node.nodeName !== "A" && node.nodeName !== "HTML") {
node = node.parentNode;
}

if('href' in node && node.href.indexOf('http') !== -1 &&
(node.href.indexOf(document.location.host) !== -1)){

event.preventDefault();
document.location.href = node.href;        }
},false);
}

现在,想象一下:您正在页面 http://test.gr/index.html第一个条件为真 (//1.)。页面上有这个链接:

<a href="http://test.gr/info.html" target="_blank">Info</a>  

1)什么情况下第一个条件(//1)为真?

2) 点击链接后会发生什么?代码何时通过 while 循环?该链接是在同一选项卡中打开还是在新选项卡中打开?

谢谢

最佳答案

1) Under which circumstances the first condition (//1) is true?

在 iOS 上使用 Safari 浏览器时,和 setting the apple-mobile-web-app-capable元标记

<meta name="apple-mobile-web-app-capable" content="yes">

2)What happens after clicking on the link? When the code pass the while loop? Does the link open in the same tab or in a new tab?

while 循环从被点击的元素开始横向遍历 dom 树,直到到达 Anchor 标记或到达根 HTML 元素。

第二个 if 语句检查停止的节点是否是具有有效 href 属性的元素,如果不是则不会发生其他情况。

否则,event.preventDefault() 将阻止默认操作,在示例 Anchor 的情况下,默认操作将是打开一个新选项卡。 document.location.href 然后将当前选项卡更改为新位置。

关于javascript - 独立窗口导航器和事件监听器 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47039198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com