【问题标题】:nodewebkit - documentation said screen will work, but its getting impossible to make it worknode webkit - 文档说 screen 可以工作,但让它工作变得不可能
【发布时间】:2014-12-11 08:01:05
【问题描述】:

我正在使用最新的 nodewebkit 并按照文档 (https://github.com/rogerwang/node-webkit/wiki/Screen) 运行以下代码,但它总是失败。谁能告诉我为什么会出现此错误以及如何解决?

<!DOCTYPE html>
<html>
<body>
    <script>
      function ScreenToString(screen) {
        var string = "";
        string += "screen: "+ screen.id;
        return string;
      } 

      var gui = require('nw.gui');
      gui.Screen.Init();
      var string  = "" ; 
      var screens = gui.Screen.screens;

      for(var i=0;i<screens.length; i++) {
        string += ScreenToString(screens[i]);
      }
      document.write(string);
    </script>
</body>
</html>

错误:

Uncaught node.js Error 

SyntaxError: Unexpected end of input
    at Object.parse (native)
    at Screen.screens (screen.js:65:15)
    at file:///C:/Users/xxx/Downloads/node-webkit-v0.11.0-pre-win-x64/node-webkit-v0.11.0-pre-win-x64/test.html:14:28

【问题讨论】:

  • 上面的代码对我有用。它显示文本 screen: 2528732444screen: 2779098405。您使用的是什么版本的 node-webkit,您当前发布的 HTML 是应用程序的全部内容吗?
  • @TroyGizzi:我使用的是 0.10.2 版,现在我看到了输出。但是我怎么能告诉我的应用程序在第二个屏幕而不是在第一个屏幕上运行呢?例如,我有主屏幕,并且连接了显示器。我想在启动时在第二个监视器中打开我的 nodewebkit 我该怎么做?

标签: javascript windows screen node-webkit node-webkit-agent


【解决方案1】:

此脚本将窗口移动到另一个屏幕的中心(如果有的话)。

var gui = require('nw.gui');

// initialize the Screen singleton
gui.Screen.Init();

// get the current window
var win = gui.Window.get();

function moveToOtherWindow() {
    for(var i = 0; i < gui.Screen.screens.length; i++) {
        var screen = gui.Screen.screens[i];
        // check if the window is horizontally outside the bounds of this screen
        if (win.x < screen.bounds.x || win.x > screen.bounds.x + screen.bounds.width) {
            // move the window to this screen
            win.x = screen.bounds.x + (screen.bounds.width - win.width) / 2;
            win.y = screen.bounds.y + (screen.bounds.height - win.height) / 2;
            break;
        }
    }
}

moveToOtherWindow();

【讨论】:

  • paste.ubuntu.com/8577493 - 我有这个 package.json,当我有单显示器时,它可以全屏显示。但是当我在双屏中使用您的示例时,它不会全屏显示。
  • "kiosk": true 从不适合我。我必须以编程方式使用gui.Window.get().enterKioskMode();。当我这样做时,在上面代码的底部,并使用您的 package.json,它将应用程序移动到另一个屏幕并在 kiosk 模式下最大化它。这就是你想要做的吗?
猜你喜欢
  • 1970-01-01
  • 2019-06-16
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
相关资源
最近更新 更多