我有一个遗留应用程序的小问题。它显示一个图表,当你把鼠标移到图表上的一个点上时,它会在工具提示和浏览器底部的状态栏上显示一些信息(这是一个只支持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信息,然后更改为指定的文本。这只是两个事件工作顺序的问题吗?
3条答案
按热度按时间mzaanser1#
如果应用中的
<a>
(锚)没有(真实的的)href
,您可以将其替换为任何其他html元素。(例如<span>
);锚没有添加任何东西(从行为感知),除了默认样式。当用另一个元素替换锚时,可能需要一些额外的样式。对于样式,我添加了类“link”
CSS:
我知道这不会解决onmouseover +
<a>
的问题,但它可以保证“href”永远不会显示在状态栏中,JavaScript函数将正常工作。kgsdhlau2#
据我所知,这看起来是正确的。有一件事你可能需要检查一下,现代浏览器已经禁用了更改状态消息的功能。这是出于各种原因-主要是安全性。如果你把鼠标放在一个链接上,你应该看到链接的去向--而不是一些隐藏的文本,阻止你知道你下一步要去哪里。您可以更改浏览器上的设置以确保看到状态消息。
在Internet Explorer中:
转到工具〉Internet选项
1.单击安全选项卡
1.确保选择/突出显示Internet选项
1.单击“自定义级别...”(这将启动Internet区域的安全设置)
1.向下滚动,直到您看到允许通过脚本更新状态栏(在脚本选项下)。
1.单击“确定”保存此屏幕
1.再次单击确定
当然,你也可以选择另一种方法,让工具提示显示坐标而不是状态栏,你试过吗?这只是基本的HTML(使用
alt
属性)。dfuffjeb3#
在我看来,问题是你试图让遗留应用程序仍然是一个遗留应用程序。
window.status:设置浏览器底部状态栏中的文字或返回以前设置的文字。
但现在已经过时了。
例如,如果你想让它在Firefox中工作,你必须遵循这个。
要允许脚本更改状态栏文本,用户必须在about:config屏幕中将dom.disable_window_status_change首选项设置为false。