HTML / HTA文档中鼠标位置的实时更新 [英] Live updates of the Mouse Position in HTML/HTA Document

查看:104
本文介绍了HTML / HTA文档中鼠标位置的实时更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我知道Window.Event只有在DOM事件是可用的时候才可用被称为。所以有一个这样的函数:

VBScript:

 函数vbsUpdateMousePos ()

Dim X,Y,MouseX,MouseY

Set MouseX = document.getElementById(MouseX)
Set MouseY = document.getElementById(MouseY )

X = Window.Event.ClientX
Y = Window.Event.ClientY

MouseX.value = X
MouseY.value = y


End Function

JScript:

 函数jsUpdateMousePos()
{

var MouseX = document.getElementById(MouseX);
var MouseY = document.getElementById(MouseY);

var x = window.event.clientX;
var y = window.event.clientY;

MouseX.value = x;
MouseY.value = y;

}

如果我用这些函数调用'OnClick'或'onDblClick'

 < Body OnClick = jsUpdateMousePos OnDblClick = vbsUpdateMousePos> 

但是,当我尝试创建间隔时,不是。



VBScript:

  setIntervalvbsUpdateMousePos,100 

JScript:

  setInterval(jsUpdateMousePos,100); 

由于没有调用DOM事件处理程序,因此需要window.event p>

但我希望能够更新位置(有点像在MSPaint.exe程序中光标位置显示在状态栏中的内容。)



这可能吗?






这里是完整的演示: (注意为获得最佳效果,请将此片段另存为.HTA文件。)






 < HTML> 
< head>
< title> Mucho Cursor位置Del Hogar Por赞成< / title>
< HTA:APPLICATION
APPLICATIONNAME =游标位置
ID =IDontKnow
VERSION =6.9/>
< / head>

< script language =VBScript>

函数vbsUpdateMousePos()

Dim X,Y,MouseX,MouseY

Set MouseX = document.getElementById(MouseX)
Set MouseY = document.getElementById(MouseY)

X = Window.Event.ClientX
Y = Window.Event.ClientY

MouseX.value = X
MouseY.value = y



End Function


Sub vbsStartInterval

'尝试此
setIntervalvbsUpdateMousePos时发生错误,100

End Sub

< / script>



< script language = JavaScript>


函数jsUpdateMousePos()
{

var MouseX = document.getElementById(MouseX);
var MouseY = document.getElementById(MouseY);

var x = window.event.clientX;
var y = window.event.clientY;

MouseX.value = x;
MouseY.value = y;




$ b函数jsStartInterval(){
//错误发生在尝试此
setInterval(jsUpdateMousePos ,100);
}

< / script>




< body onclick = jsUpdateMousePos ondblclick = vbsUpdateMousePos>
< center>
点击此窗口中的任意位置以测试JavaScript更新光标位置< br>
双击此窗口中的任何位置以测试VBScript更新游标位置

< table>
< tr>
< td>
鼠标X:
< / td>
< td>
< input id = MouseX type = text size = 4>
< / td>
< / tr>
< tr>
< td>
鼠标Y:
< / td>
< td>
< input id = MouseY type = text size = 4>
< / td>
< / tr>
< / table>



解决方案

c> mousemove 函数调用。这在.hta文件中工作得很好。

 < html> 
< script>
函数getCoords(e){
document.getElementById(xCoord)。innerHTML = e.clientX;
document.getElementById(yCoord)。innerHTML = e.clientY;
}
< / script>
< body onmousemove =getCoords(event)>
X:< span id =xCoord>< / span> Y:< span id =yCoord>< / span>
< / body>
< / html>


I would like to be able to constantly LIVE update the mouse position in a HTA window.

I know that Window.Event is only available when a DOM event is being called. so having a function that does this

VBScript:

Function vbsUpdateMousePos()

  Dim X,Y, MouseX, MouseY

  Set MouseX=document.getElementById ("MouseX")
  Set MouseY=document.getElementById ("MouseY")

  X=Window.Event.ClientX
  Y=Window.Event.ClientY

  MouseX.value=X
  MouseY.value=y


End Function

JScript:

function jsUpdateMousePos ()
{

var MouseX=document.getElementById ("MouseX");
var MouseY=document.getElementById ("MouseY");

var x=window.event.clientX;
var y=window.event.clientY;

MouseX.value=x;
MouseY.value=y;

}

would work if I were to call any of those functions with an 'OnClick' or 'onDblClick'

<Body OnClick=jsUpdateMousePos OnDblClick=vbsUpdateMousePos>

But NOT when i try to create an interval.

VBScript:

setInterval "vbsUpdateMousePos",100

JScript:

setInterval ("jsUpdateMousePos",100);

Because of an object required "window.event" since no DOM event handler is being called.

But I would like to be able to live update the position (kinda like what you get in the MSPaint.exe program where the cursor position is displayed in the status bar.)

Is this Possible?


HERE is the FULL Demo: (NOTE for best results, save this snippet as a .HTA file.)


<html>
<head>
<title>Mucho Cursor Position Del Hogar Por Favor</title>
<HTA:APPLICATION
  APPLICATIONNAME="Cursor Position"
  ID="IDontKnow"
  VERSION="6.9"/>
</head>

<script language="VBScript">

Function vbsUpdateMousePos()

  Dim X,Y, MouseX,MouseY

  Set MouseX=document.getElementById ("MouseX")
  Set MouseY=document.getElementById ("MouseY")

  X=Window.Event.ClientX
  Y=Window.Event.ClientY

  MouseX.value=X
  MouseY.value=y



End Function


Sub vbsStartInterval

  'Error Occurs when Trying this 
  setInterval "vbsUpdateMousePos",100

End Sub

</script>



<script language=JavaScript>


function jsUpdateMousePos ()
{

  var MouseX=document.getElementById ("MouseX");
  var MouseY=document.getElementById ("MouseY");

  var x=window.event.clientX;
  var y=window.event.clientY;

  MouseX.value=x;
  MouseY.value=y;

}



function jsStartInterval (){
  //Error Occurs when trying this
  setInterval ("jsUpdateMousePos",100);
}

</script>




<body onclick=jsUpdateMousePos ondblclick=vbsUpdateMousePos>
  <center>
 Click anywhere in this window to test JavaScript Update Cursor position<br>
 Double Click anywhere in this window to test VBScript Update Cursor Position

  <table>
    <tr>
      <td>
        Mouse X: 
      </td>
      <td>
        <input id=MouseX type=text size=4>
      </td>
    </tr>
    <tr>
      <td>
        Mouse Y: 
      </td>
      <td>
        <input id=MouseY type=text size=4>
      </td>
    </tr>
  </table>


  <button onclick=jsStartInterval title="start live updates of the cursor position">Start Interval (JavaScript)</button>

  <button onclick=vbsStartInterval title="start live updates of the cursor position">Start Interval (VBScript)</button>
  </center>
</body>

</html>

解决方案

This is very possible with a simple mousemove function call. This works just fine in a .hta file.

<html>
<script>
function getCoords(e) {
    document.getElementById("xCoord").innerHTML = e.clientX;
    document.getElementById("yCoord").innerHTML = e.clientY;
}
</script>
<body onmousemove="getCoords(event)">
X:<span id="xCoord"></span> Y:<span id="yCoord"></span>
</body>
</html>

这篇关于HTML / HTA文档中鼠标位置的实时更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆