首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NW.js中打开没有菜单的新窗口

在NW.js中打开没有菜单的新窗口
EN

Stack Overflow用户
提问于 2017-01-05 15:10:36
回答 1查看 2.8K关注 0票数 1

嗨,我有一个使用NW.JS和angularjs的应用程序。但问题是,我想打开一个新窗口(从应用程序中加载一个新页面),而不继承主窗口菜单中的菜单栏。这在nwjs中有可能吗?而且,每当我从主窗口菜单中单击触发新窗口打开的菜单项时,它总是打开新窗口。我怎么才能阻止这一切?我的意思是,当我已经打开新的窗口,应用程序应该避免再次打开它,除非它已经关闭。

在我的index.html里

代码语言:javascript
复制
var menu = new nw.Menu({ type: 'menubar' });

var submenu = new nw.Menu();
submenu.append(new nw.MenuItem({
    label: 'Exit',
    click: function(){
        nw.App.quit();
    }
}));

menu.append(new nw.MenuItem({
    label: 'File',
    submenu: submenu
}));
menu.append(new nw.MenuItem({
    label: 'New Page',
    click: function(){
        nw.Window.open('index.html#/new_page')
    }
}));

nw.Window.get().menu = menu;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-15 07:51:57

当打开新窗口时,您使用的是包含代码的相同html文件来创建菜单栏,因此显然要为弹出窗口创建菜单栏,您还需要使用不同的html文件作为弹出窗口。

下面是代码的完整版本,如果它不适合您,请告诉我。

index.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" /> 
    <title>Demo</title>

    <script type="text/javascript">
        //var win = nw.Window.get();
        //win.showDevTools();

        var menu = new nw.Menu({ type: 'menubar' });

        var submenu = new nw.Menu();
        submenu.append(new nw.MenuItem({
            label: 'Exit',
            click: function(){
                nw.App.quit();
            }
        }));

        menu.append(new nw.MenuItem({
            label: 'File',
            submenu: submenu
        }));
        menu.append(new nw.MenuItem({
            label: 'New Page',
            click: function(){
                console.log('open new page');
                var parentWin = window;

                if(parentWin.localStorage.getItem('child_open')) {
                    console.log('child window is already open');
                    return;
                }

                nw.Window.open('home.html#new_page', {}, function(win) {
                    parentWin.localStorage.setItem('child_open', true);

                    win.on('closed', function() {
                        parentWin.localStorage.removeItem('child_open');
                    });
                });
            }
        }));

        nw.Window.get().menu = menu;
    </script>
</head>
<body>
</body>
</html>

home.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" /> 
    <title>Inner Window</title>
</head>
<body>
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <p id="new_page"> New page section </p>
</body>
</html>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41488348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档