AppJS拖放事件永远不会被解雇

时间:2013-04-22 08:53:06

标签: javascript node.js javascript-events webkit appjs

使用AppJS(http://appjs.org/),它基本上为NodeJS提供了一个webkit窗口。 我正在尝试利用拖放事件来处理我的代码中使用的文件和URL。

可以在此处找到拖放的简短代码:https://github.com/appjs/appjs/wiki/HTML5:-Drag-&-Drop-from-Desktop

我用来创建窗口的代码:

var app_window = appjs.createWindow({
  width  : 200,
  height : 200,
  showChrome : true, //display as standard os window with max/min/close buttons
  alpha: false,
  autoResize: true,  //adjust window size automatically according to content.
  resizable: true,   //allow user resize of window
  margin: 0,
  disableSecurity:true, //turn off security restrictions.
  showResizeGrip:false, //show/hide the resize grip.
  name:'Drag and Drop',   //undocumented parameter
  opacity:1,
  fullscreen:false,
  topmost:true
});


事件处理程序代码:

var window_drop = function(event) { // this code never fires.
  event.preventDefault();
  console.log('drop event');
};


以及我为触发事件设置的代码:

app_window.on('ready', function() {
  app_window.require = require;
  app_window.process = process;
  app_window.module = module;
  app_window.console = console;

  app_window.frame.show();
  app_window.frame.center();

  app_window.addEventListener("drop", window_drop);
});

规格:我在Mac OSX Lion上运行NodeJS 32位(AppJS需要) 我知道AppJS处于起步阶段,但这应该有用。

可能是什么问题?为什么事件永远不会被解雇?

1 个答案:

答案 0 :(得分:0)

我不完全确定为什么你的方法不起作用,但尝试我使用的方法(并且它可以工作): -

在主html中,在那里添加脚本标记,然后将drop事件附加到app-ready事件中,如下所示:

addEventListener('app-ready', function(e){
    window.addEventListener("drop", window_drop);
    window.dispatchEvent(new Event('app-done'));
});