繁体   English   中英

如何为DOJO模拟真实鼠标单击

[英]How to simulate a Real Mouse click for DOJO

我有一个基于HTML5的Web应用程序...在其中,我有一个用于一些用户操作的dojo对话框...现在,我想单击该对话框的标题栏...该对话框的标题栏是可通过ele = document.getElementById("searchFrame_title"); ...

我正在通过此按钮单击对话框的标题栏

ele = document.getElementById("searchFrame_title");
ele.style.cursor = 'move';
var evt = new MouseEvent("click", {
    view : window,
    bubbles : true,
    cancelable : true,
    }), ele = document.getElementById("searchFrame_title");
ele.dispatchEvent(evt);
alert("clicked");

虽然一切都很好,但是单击dojo对话框的标题栏时,它不会出现在可见区域中...

方案...

我拖动了网页底部的对话框(真正的底部将其向上推)。 然后我在对话框上单击了一下,该对话框在对话框上附加了一些数据,由于所附加的数据进入了屏幕内部。

问题...

当我手动单击标题栏时,对话框自动将其向上移动到从底部计算出的可视区域。 但是当我模拟代码中的点击(如上所示)时,它并没有这么做...

怎么做...

定位不是在单击时完成,而是在结束拖动时完成。 模拟点击不会触发拖动机制。

但是,您可以解决它。 那是一个肮脏的把戏,但是您可以调用对话框的_endDrag()方法(而不是模拟单击),请参见:

 require(["dijit/Dialog", "dojo/domReady!"], function(Dialog){ var dialog = new Dialog({ content: document.getElementById('dialogContent') }); dialog.show(); document.getElementById('repositionMe').onclick = function() { dialog._endDrag(); } document.getElementById('addTo').onclick = function() { document.getElementById('content').innerHTML += '<br>' + document.getElementById('content').innerHTML; } }); 
 <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script> <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css"> <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css"> <body class = "tundra"> <div id="dialogContent"> <button id="addTo">add content</button> <button id="repositionMe">reposition me</button> <div id="content">this is the content of the dialog</div> </div> </body> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM