单击按钮时打开一个新选项卡



我想使用在新选项卡中打开的按钮创建一个链接。

我目前使用的代码当前打开一个空白选项卡,我不确定为什么。

<div class="text text-left">
<h2>WORK</h2>
<h1>Title</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pellentesque felis ante, eu convallis sem egestas id.</p>
<p>Etiam fermentum vestibulum hendrerit. Nam ac felis dolor ultricies varius eget vel arcu.</p>
<button href="https://www.behance.net" onclick="window.open(this.href); return false;">View Project</button>
</div>

预期的结果是在单击按钮后打开一个新选项卡 (Behance.com) - 而不是空白选项卡。

谢谢。

不允许在元素button上使用属性href而不是添加href只是在 HTML 中使用data-href,而在 JavaScript 中只需将this.href更改为this.getAttribute('data-href'),如下所示:

<div class="text text-left">
<h2>WORK</h2>
<h1>Title</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pellentesque felis ante, eu convallis sem egestas id.</p>
<p>Etiam fermentum vestibulum hendrerit. Nam ac felis dolor ultricies varius eget vel arcu.</p>
<button data-href="https://www.behance.net" onclick="window.open(this.getAttribute('data-href')); return false;">View Project</button>
</div>

由于权限被阻止,直接运行代码对您不起作用。您可以在自己的项目中尝试此操作。

调试这样的东西时,我喜欢做的第一件事是console.logthis.href,因为您没有得到期望的结果。这里所有问题的迹象都指向this.href.如果你这样做,你会看到它给你undefined

您正在寻找的是window.location.href.更新您的点击以反映这一点。

https://developer.mozilla.org/en-US/docs/Web/API/Window/location

this.href

无效。使用this.getAttribute('href')

JSFiddle Demo


但是,虽然这回答了您的问题,但这不是好的做法。
正如@Sami Ahmed Siddiqui指出的那样,href不是按钮元素的有效属性。
相反,您可以使用data-*属性,例如data-href

使用

<a href="https://www.behance.net" target="_new" onclick="window.open(this.href); return false;">View Project</a>

<div class="text text-left">
<h2>WORK</h2>
<h1>Title</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pellentesque felis ante, eu convallis sem egestas id.</p>
<p>Etiam fermentum vestibulum hendrerit. Nam ac felis dolor ultricies varius eget vel arcu.</p>
<button href="https://www.behance.net" onclick="window.open(this.getAttribute('href'),'_blank')" >View Project</button>
</div>

相关内容

  • 没有找到相关文章

最新更新