onmouseover vs onmousemove显示信息

时间:2011-02-11 16:22:51

标签: javascript javascript-events

我的遗留应用程序存在一个小问题。它显示一个图形,当您将鼠标移动到图形上的某个点上时,它会在工具提示中以及浏览器底部的状态栏上显示一些信息(它是一个仅限IE的应用程序)。但它并不总是显示信息;有时您必须将鼠标移开该点并再次返回以显示它。回到应用程序编写时,开发人员使用'onmousemove'来显示信息,而不是'onmouseover'。不确定为什么所以我把它更改为'onmouseover'以查看它是否有所作为并且它似乎更可靠地工作,除了现在信息没有显示在状态栏上。相反,显示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信息,然后更改为指定的文本。这只是两个事件有效的顺序问题吗?

戴夫

3 个答案:

答案 0 :(得分:1)

如果您应用中的<a>(锚点)没有(真实)href,则可以将其替换为任何其他html元素。 (例如<span>);除了默认样式之外,锚点不会添加任何内容(来自行为敏感)。

用另一个元素替换锚点时 可能需要额外的造型。对于样式,我添加了“链接”类

<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函数也能正常工作。

答案 1 :(得分:0)

据我所知,这看起来是正确的。您可能想要检查的一件事是现代浏览器已禁用更改状态消息的功能。这是出于各种原因 - 主要原因是安全性。如果您将鼠标悬停在某个链接上,则应该会看到该链接的位置 - 而不是一些隐藏的文字,这些文字会阻止您知道下一步的位置。您可以更改浏览器上的设置,以确保您看到状态消息。

在Internet Explorer中:

转到工具&gt;互联网选项

  1. 单击“安全”选项卡
  2. 确保选中/突出显示“Internet”选项
  3. 单击自定义级别...(这将启动Internet区域的安全设置)
  4. 向下滚动,直到您看到通过脚本允许状态栏更新(在“脚本”选项下)。单击“启用”
  5. 单击“确定”保存此屏幕
  6. 再次点击“确定”
  7. 当然,你总是可以走另一条路线,只是让工具提示显示坐标而不是状态栏。你试过吗?这只是基本的HTML(使用alt属性)。

答案 2 :(得分:0)

在我看来,问题在于您正试图让遗留应用程序保持传统应用程序

<小时/>

  

window.status:设置文本   底部的状态栏   浏览器或返回先前设置   文本。

但现在它的出现了。

例如,如果你想让它在Firefox中运行,你必须遵循这个。

  

允许脚本更改   状态栏文本,用户必须设置   dom.disable_window_status_change   偏爱于假   about:config screen。