javascript onmouseover与onmouseemove显示信息

a1o7rhls  于 2023-01-07  发布在  Java
关注(0)|答案(3)|浏览(103)

我有一个遗留应用程序的小问题。它显示一个图表,当你把鼠标移到图表上的一个点上时,它会在工具提示和浏览器底部的状态栏上显示一些信息(这是一个只支持IE的应用程序)。但它并不总是显示信息;有时候你必须把鼠标从点上移开,然后再移回来才能让它显示出来。回到应用程序编写的时候,开发人员使用X1 M0 N1 X来显示信息,而不是X1 M1 N1 X。不是很清楚为什么,所以我把它改成了X1 M2 N1 X,看看它是否有区别,看起来工作更可靠,只是现在状态栏上没有显示信息,而是显示了href信息(图表上的点可以单击以深入查看该点)。
下面是一些显示问题的简单HTML示例:

<html>
<script language="JavaScript">
  function display(txt) {
    window.event.srcElement.title = txt;
    window.status = txt;
  }

  function reset() {
    window.status = window.defaultStatus;
  }
</script>
<body>
  <a href="#" onclick="alert('do something');" onmouseover="display('Displaying mouseover!');" onmouseout="reset();">This is mouseover text.</a>
  <br/><br/>
  <a href="#" onclick="alert('do something else');" onmousemove="display('Displaying mousemove!');" onmouseout="reset();">This is mousemove text.</a>
</body>
</html>

有没有办法让onmouseover事件在状态栏上显示信息,而不是显示href信息?当使用onmousemove时,状态栏非常简短地显示href信息,然后更改为指定的文本。这只是两个事件工作顺序的问题吗?

mzaanser

mzaanser1#

如果应用中的<a>(锚)没有(真实的的)href,您可以将其替换为任何其他html元素。(例如<span>);锚没有添加任何东西(从行为感知),除了默认样式。
当用另一个元素替换锚时,可能需要一些额外的样式。对于样式,我添加了类“link”

<span class="link" onclick="alert('do something');" onmouseover="display('Displaying mouseover!');" onmouseout="reset();">This is mouseover text.</span>

CSS:

span.link
{
  color:blue;
  text-decoration:underline;
}

我知道这不会解决onmouseover + <a>的问题,但它可以保证“href”永远不会显示在状态栏中,JavaScript函数将正常工作。

kgsdhlau

kgsdhlau2#

据我所知,这看起来是正确的。有一件事你可能需要检查一下,现代浏览器已经禁用了更改状态消息的功能。这是出于各种原因-主要是安全性。如果你把鼠标放在一个链接上,你应该看到链接的去向--而不是一些隐藏的文本,阻止你知道你下一步要去哪里。您可以更改浏览器上的设置以确保看到状态消息。
在Internet Explorer中:
转到工具〉Internet选项
1.单击安全选项卡
1.确保选择/突出显示Internet选项
1.单击“自定义级别...”(这将启动Internet区域的安全设置)
1.向下滚动,直到您看到允许通过脚本更新状态栏(在脚本选项下)。
1.单击“确定”保存此屏幕
1.再次单击确定
当然,你也可以选择另一种方法,让工具提示显示坐标而不是状态栏,你试过吗?这只是基本的HTML(使用alt属性)。

dfuffjeb

dfuffjeb3#

在我看来,问题是你试图让遗留应用程序仍然是一个遗留应用程序。
window.status:设置浏览器底部状态栏中的文字或返回以前设置的文字。
但现在已经过时了。
例如,如果你想让它在Firefox中工作,你必须遵循这个。
要允许脚本更改状态栏文本,用户必须在about:config屏幕中将dom.disable_window_status_change首选项设置为false。

相关问题