我目前在调用 Ext.menu.Menu 实例时尝试从 DOM 获取当前选定的文本时遇到问题。这里有一个简化的例子。
- 从包含以下 EXTJ 示例的标准 HTML 页面中选择并突出显示文本
- 右键单击以调用内容菜单
- 选择可从绑定到上下文菜单的事件侦听器中使用,但在从上下文菜单中输入或选择选项时不可用。
注意:由于控制台对象,示例目前在 Chrome 和 Firefox 中有效
Ext.onReady(function() {
// Context Menu
var menu = Ext.create('Ext.menu.Menu', {
items : [{
text : 'Copy',
handler : function() {
// Selection is not available here
console.log("On Context menu item:" + window.getSelection().toString());
}
}],
listeners : {
mouseenter : function() {
// Selection is not available here
console.log("Enter menu render: " + window.getSelection().toString());
},
activate : function () {
// Selection is still available
console.log("Activate Context menu render:" + window.getSelection().toString());
}
}
});
// Bind to contextmenu event listener
Ext.getDoc().on('contextmenu', function(ev) {
menu.showAt(ev.getXY());
ev.stopEvent();
// Selection is available
console.log("On Context menu :" + window.getSelection().toString());
});
});