我需要在新窗口中打开一个 Backbone.js 模板。这可能吗?目前我有一个显示在div中的模板,但我需要在新窗口中显示此内容?我认为使用路由可能是一种方法,但我不确定。
我是一个菜鸟的 Backbone ,所以可能有一个更好的方法来做到这一点。
在我看来,我已经得到了:
events:
{
'click #active-bets' : 'loadActiveBetsPage',
}
loadActiveBetsPage: function(e)
{
var MyApp = new Backbone.Router();
MyApp.navigate('activebets', {trigger: true});
// , {trigger: true, target: "_blank"}
},
我想我可能运气好,能够通过一个目标:此处输入“_blank”参数。
在“我的路线”部分:
var AppRouter = Backbone.Router.extend({
routes: {
":activebets" : "renderActiveBets",
"*actions" : "defaultRoute"
} });
app_router.on('route:renderActiveBets', function () {
$this.activeBetsView = new ActiveBetsView( { el: $this.elAccountInfo });
$this.activeBetsView.render();
/* thought something like this might help possibly
if ($(event.currentTarget).prop('target') === '_blank') {
return true;
}
*/
});`
提前感谢你在这件事上的任何帮助。
2条答案
按热度按时间0sgqnhkj1#
不,这是不可能的,尤其是不能直接与 Backbone 路由器。
从网页打开新浏览器窗口的唯一方法是使用
window.open
javascript method。它将打开一个指向指定URL的新浏览器窗口。请注意,您创建的页面和您开始的页面是相互独立的,它们之间无法通过javascript进行通信。另一种方法是使用带有
target
-attribute的锚标记,这会导致单击链接打开一个新窗口/选项卡。您可以执行的操作:
1.使用html创建的对话框模拟新窗口,例如jQuery UI Dialog
1.创建一个单独的网页来显示此信息,打开一个新的浏览器窗口并将新窗口定向到此网页。
vsikbqxv2#
根据上一条注解更新:
“......它们之间无法通过JavaScript进行通信。”
从HTML5开始,解决方案就是HTML5 Web存储。
是可以与浏览器中所有打开的选项卡和窗口进行通信的API。