0

我需要在新窗口中打开主干模板。这可能吗?目前我有一个在 div 中显示的模板,但我需要在新窗口中显示此内容?我认为使用路线可能是要走的路,但我不确定。

我是骨干的菜鸟,所以可能有更好的方法来做到这一点。

在我看来,我有:

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;
        }
        */

    });`

提前感谢您对此提供的任何帮助。

4

2 回答 2

1

不,这是不可能的,尤其是不能直接使用骨干路由器。

从网页打开新浏览器窗口的唯一方法是使用window.openjavascript 方法。它将打开一个指向指定 URL 的新浏览器窗口。请注意,您创建的页面和您开始的页面是相互独立的,它们之间无法通过 javascript 进行通信。

另一种方法是使用带有target-attribute的锚标记,这会导致单击链接打开一个新窗口/选项卡。

你可以做什么:

  1. 使用 html 创建的对话框来模拟新窗口,例如jQuery UI Dialog
  2. 创建一个单独的网页来显示此信息,打开一个新的浏览器窗口并将新窗口定向到该网页。
于 2013-08-22T11:23:09.787 回答
0

根据上次评论更新:

“......没有办法通过javascript在它们之间进行通信。”

从 HTML5 开始,解决方案就是 HTML5 Web Storage。

window.localStorage 

是可以与浏览器中所有打开的选项卡和窗口进行通信的 API。

于 2018-09-24T13:22:31.237 回答