我试图在我的应用程序中为onbeforeunload附加一个侦听器,但它似乎没有被enyo.Signals捕获。

根据Documentation


  在Enyo框架本身内,没有节点目标的DOM事件将作为信号广播。这些事件包括窗口事件,如onload和onbeforeunload,以及直接发生在文档上的事件,如onkeypress(如果文档具有焦点)。信号对于挂接非Enyo事件(例如PhoneGap事件)也很有用,这些事件将由应用程序代码中的Enyo类型处理。


我编写了以下测试用例:

 enyo.kind({
    name: "App",
    kind: "enyo.Control",
    fit: true,
    content: "Hello World",

    components:[
        {kind: "enyo.Signals", onbeforeunload: "test"}
    ],

    test: function(inSender, inEvent) {
         return 'You have unsaved changes!';
    }
});


当我关闭标签或离开页面时,这似乎没有任何作用。我想念什么?这是JSFiddle

最佳答案

默认情况下,我们似乎没有处理beforeunload:

https://github.com/enyojs/enyo/blob/master/source/dom/dispatcher.js

但是,您可以将其与类似

enyo.dispatcher.listen(window, "beforeunload");

10-06 07:43