如何在Meteor的新选项卡或窗口中打开链接

时间:2012-12-17 07:49:18

标签: meteor

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

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

在所有情况下,链接都会在与点击位置相同的标签页中打开,但不包含http://的网址除外,该网址在新标签页中打开了about:blank页面。

知道造成这种情况的原因,或者如何解决这个问题?

4 个答案:

答案 0 :(得分:9)

这似乎是一个错误。我认为Meteor应忽略与target="_blank"的链接。也许你可以在issue tracker

上创建一个问题

那就是说,我已经成功完成了这项工作:

的test.html

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

test.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中测试过它们,所以这可能是浏览器问题。

答案 1 :(得分:0)

如果使用phonegap。答案就在这里 phonegap open link in browser

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:-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>