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

如何在Meteor中的新选项卡或窗口中打开链接,meteor,Meteor,我还没有找到任何有效的方法。我尝试了以下所有方法,但均无效: 将属性target=“\u blank”添加到 将target=“someName”添加到 URL以'/' URL以Meteor.absoluteUrl()开头。 URL以Meteor.absoluteUrl()开头,删除了http://“ URL作为字符串文本,不是从模板帮助程序返回的 模板中的{{{常量}}区域内 不在模板中的{{{{常量}}区域内 在任何模板之外的主体中 附加到浏览器控制台中的正文中 window.open([

我还没有找到任何有效的方法。我尝试了以下所有方法,但均无效:

  • 将属性
    target=“\u blank”
    添加到
  • target=“someName”
    添加到
  • URL以
    '/'
  • URL以Meteor.absoluteUrl()开头。
  • URL以Meteor.absoluteUrl()开头,删除了http://“
  • URL作为字符串文本,不是从模板帮助程序返回的
  • 模板中的
    {{{常量}}
    区域内
  • 不在模板中的
    {{{{常量}}
    区域内
  • 在任何模板之外的主体中
  • 附加到浏览器控制台中的正文中
  • window.open([url],[target])
    使用上述所有组合
在所有情况下,链接都会在与单击位置相同的选项卡中打开,但URL不是以
http://
开头,它会在新选项卡中打开一个
about:blank
页面


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

这似乎是一个bug。我认为Meteor应该忽略带有
target=“\u blank”
的链接。也许你可以在网上制造一个问题

也就是说,我成功地完成了这项工作:

test.html

此外,我还发现添加
http://
可以用于外部链接,例如

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


我不知道为什么这些东西不适合你。不过,我只在Chrome上测试过,所以这可能是浏览器的问题。

如果使用phonegap。答案就在这里

创建此全局帮助程序

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>

我肯定参加派对已经太迟了,但是对于那些最终会在这里试图找到解决这个问题的方法的人(像我一样),我只想明确说明一下
窗口。打开([url],[target])
方法,对于那些需要一个窗口而不是一个新标签的人来说

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


window.open(event.target.href,“,”宽度=200,高度=200“
应在具有给定维度的新窗口(不是新选项卡)中打开目标URL。

Meteor是为单页web应用程序设计的,这可以解释这一点。不管怎样,我要说这种行为令人惊讶,它起了作用,谢谢!我没有想过那样做。到目前为止,它可以在chrome和firefox中使用,还没有在其他浏览器中测试过。虽然您可能需要一个用于按钮点击的事件处理程序,但对于
a href
元素来说,它是毫无意义的。像任何HTML页面一样,这些链接都是由浏览器处理的——您不需要编写任何代码。我想您一定是在url中缺少http。创建一个复制问题的公共回购协议,我很乐意看一看。遗憾的是,我没有错过http协议。请注意,这发生在我为iOS打包meteor应用程序时。那么,你是建议我为你创建一个概念证明来编译一个iOS应用程序?哦,你没提到。不幸的是,并非所有使用SSL(https/ftps)的网站都可以在没有SSL(http)的情况下访问。此外,您正在将ftps链接路由到http。任何通情达理的人都不会将addHttp用于FTP链接。您应该创建其他帮助程序,如
addHttps
addFtp
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>