如何在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])
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>