我在调用Ext.menu.Menu实例时尝试从DOM获取当前选定的文本时遇到问题。这是一个简化的例子。
注意:由于控制台对象
,示例目前在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());
});
});
答案 0 :(得分:0)
单击上下文菜单时无法进行选择,因为右键单击后,选择将被清除。当您单击菜单项时,没有选择任何内容。看看这个fiddle。您可以看到右键单击后立即清除选择。
如this answer中所述,您可能需要更加花哨并进行保存/恢复。
有关解决方案的示例,请参阅this fiddle。