13

我还没有找到任何有效的方法。我已经尝试了以下所有方法,但无济于事:

  • 将属性添加target="_blank"<a>
  • 添加target="someName"<a>
  • 网址以'/'
  • 网址以Meteor.absoluteUrl()
  • URL 以Meteor.absoluteUrl()删除的"http://"开头
  • URL 作为字符串文字,不从模板帮助程序返回
  • <a>{{#constant}}模板中的内部区域
  • <a>不在{{#constant}}模板区域内
  • <a>在任何模板之外的正文中
  • <a>附加到浏览器控制台中的正文
  • window.open([url],[target])与所有上述组合。

在所有情况下,链接都会在与单击位置相同的选项卡中打开,但不以 开头的 URL 除外http://,它会在新选项卡中打开about:blank页面。

知道是什么原因造成的,或者如何解决?

4

4 回答 4

9

这似乎是一个错误。我认为 Meteor 应该忽略与target="_blank". 也许您可以在问题跟踪器上创建问题

也就是说,我已经成功地解决了这个问题:

测试.html

<template name="test">
  <a href="/new-window" target="_blank">Open new window</a>
</template>

测试.js

Template.test.events({
  'click a[target=_blank]': function (event) {
    event.preventDefault();
    window.open(event.target.href, '_blank');
  }
});

另外,我发现http://为外部链接添加作品,例如

<a href="http://twitter.com" target="_blank">Open new window</a>

我不确定为什么这些东西对你不起作用。但是,我只在 Chrome 中测试过它们,所以这可能是浏览器问题。

于 2012-12-17T17:38:39.817 回答
0

如果使用phonegap。答案在这里 phonegap 在浏览器中打开链接

于 2014-10-24T16:50:47.760 回答
0

我肯定来晚了,但是对于那些最终会在这里试图找到解决这个问题的方法的人(比如我),我只想明确地说明一下提到的window.open([url],[target])方法,对于那些需要窗口的人而是一个新标签..

第三个参数window.open是逗号分隔的规范列表。第二个参数的默认值是_blank使新窗口在新选项卡中打开。

window.open(event.target.href, "", "width=200, height=200");应在具有给定尺寸的新窗口(不是新选项卡)中打开目标 URL 。

于 2016-03-11T18:33:50.580 回答
-1

创建这个全局助手

Helpers.addHttp = function (url) {
  if (!/^(f|ht)tps?:\/\//i.test (url)) {
    url = "http://" + url;
  }
  return url;
}

在模板中使用它

<a href="{{addHttp url}}" target="_blank">some text</a>
于 2014-11-12T12:13:57.647 回答