【问题标题】:Vue.js open link in new windowVue.js 在新窗口中打开链接
【发布时间】:2019-06-20 07:59:00
【问题描述】:

我有 Vue.js 代码

  <div class="footer-items">
  <span v-for="link in links" :key="link.name">
  <a :href="link.Link" class="tertiary--text footer-links">{{ link.name }}</a>
  </span>
</div>

这给了我一个带有一些链接的页脚。我想让其中一些链接打开一个外部窗口或选项卡。

它加载的数组是:

   data: () => ({
   links: [
  { name: "Home", Link: "/dashboard" }, // needs to open same page
  { name: "PubMed", Link: "https://www.ncbi.nlm.nih.gov/pubmed" } // needs new window
  ]

这可行,但它在同一个窗口中打开,我试过了:

        { name: "PubMed", Link: "https://www.ncbi.nlm.nih.gov/pubmed/,_blank" },  // error page

        { name: "PubMed", Link: "https://www.ncbi.nlm.nih.gov/pubmed/','_blank" }, // open same page

        { name: "PubMed", Link: "https://www.ncbi.nlm.nih.gov/pubmed/"','"_blank" },  // won't compile

        Link: "https://www.ncbi.nlm.nih.gov/pubmed/ target=_blank"  // opens same window

是否可以通过编程方式将其发送到 href。我无法更改 href,因为并非所有页面都需要在新窗口中打开。

我把代码改成:

          <a :href="link.Link" target="link.place" class="tertiary--text 
           footer-links">{{ link.name }}</a>

并在数组中添加一个位置:

          { name: "Home", Link: "/dashboard", place: "_self" },
           {name: "PubMed", Link: "https://www.ncbi.nlm.nih.gov/pubmed/",
           place: "_blank"
         },

它们都在新窗口中打开。感谢所有帮助。

【问题讨论】:

  • 您在:target="link.place" 中缺少:
  • 就像丹尼尔提到的那样,您忘记了:。请考虑为带有target="_blank" 的链接添加rel="noopener noreferrer"。您可以了解更多信息:mathiasbynens.github.io/rel-noopener
  • 谢谢大家——你们太棒了

标签: javascript vue.js


【解决方案1】:

试试这个 (jsfiddle):

// Script
links: [
    { name: "Home", href: "/dashboard", target: "_self" },
    { name: "Google", href: "https://www.google.com/", target: "_blank" },
]

// Template
<a
    v-for="link in links"
    :key="link.name"
    :href="link.href"
    :target="link.target"
    rel="noopener noreferrer">
    {{ link.name }}
</a>

【讨论】:

  • 效果很好——谢谢
猜你喜欢
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 2014-09-03
  • 2020-12-01
  • 2011-07-07
  • 2012-07-27
相关资源
最近更新 更多