【发布时间】: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