[英]IE6 Won't Display a Javascript Tooltip… how do you even begin to debug this?
我正在使用一个工具提示插件(由度假的人在内部开发),该工具可以在IE6之外的任何地方使用。 自然,只使用IE6的人就会在网站上使用它,因此我需要找到一种方法来使其显示。
您甚至将如何开始调试这样的事情? 我已经用Google搜索这个问题,以查看其他javascript工具提示插件做了什么来解决此问题,但找不到任何与我的问题有关或可以解决我的问题的信息。 因此,我很想自己调试它,但我真的不知道从哪里开始!
您将如何开始尝试破解呢?
一些代码:
在html中,我们插入以下内容(在CSS中设置display:none)...
var noteContainer =
'<div style="float:left;" class="ttip-container">
<div class="ttip-box">
(<a class="ttip_heading" href="javascript:void(0)">notes</a>)
<div class="ttip" style="background-color:#ffffff;">
<h3>Notes</h3>
<div class="subhead">' + noteMessage + '</div>
<div class="subhead_bottom">Click <a href="javascript:void(0)" class="note" noteData="' + note + '" mId="' + mId + '" visibleToM="d"><em>(notes)</em></a> to ' + actionCap + '</div>
<img class="point" src="img/hovertip.gif" width="18" height="14" />
</div>
</div>
</div>';
然后,插件将其设置为diplay:block,将鼠标悬停在锚定链接上。
所以...您将从哪里开始调试IE6 javascript问题? 我的IE6在VM中运行,因此我可以使用它...只是无法让它告诉我任何可能发生的情况。
安装IE开发人员工具栏,并安装Visual Web Developer Express(具有真正的调试器)
在这种情况下,我将使用IE开发人员工具栏来查看HTML是否正确附加到文档中。 如果是这样,那么我们知道问题不在于您粘贴到问题中的语句。 如果它不在您的文档中(在这种情况下,您可能会收到脚本错误),我将尝试将您的工具提示的HTML字符串
var noteContainer = '<div style="float:left;" class="ttip-container"></div>';
测试是否正确附加。 如果是这样,请逐步添加更多工具提示内容,直到出现错误。 到那时,您将对导致IE6解析错误的原因有一个更好的了解。
通常,在许多情况下,使用alert()在IE6-7中进行“老派”调试仍然有效。
Visual Studio和Visual Web Developer Express是不错的选择,但是它们在系统资源方面有点繁重,在虚拟机中使用可能会很烦人。
让IE与可在所有其他浏览器上运行的JS一起使用是一个很大的痛苦,因此,我对此表示同情。
在这种情况下,我要做的就是打开真正生成并在页面上显示工具提示的源代码。 在其中添加一些警报或在代码的不同位置更改document.title。 查看它是否甚至出现在应该显示工具提示的部分。
如果能够进入代码的“渲染”阶段,改变你的调试安装告诉你有什么提示元素,该元素的大小是什么,等等。关于tooptip容器,你可以收集尽可能多的信息里面。 那里的东西可能会伸出来,例如宽度/高度为0的元素或数据完全丢失。
基本上,我会尝试将其范围缩小到“数据提取”或“渲染”问题。
HTML是否实际上已正确插入到DOM中? 如果存在解析错误,则IE中的DOM方法会阻塞(无法在IE6中插入无效的HTML)。 这是第1步。确保标记确实存在(查看源很好)。
然后查看您的事件是否正在触发:在(可能是)单击处理程序内放置一个警报。 查看您的css-changeing函数是否实际上正在触发。
然后查看您的css-changeing函数是否在该对象上具有一个句柄。 尝试类似alert(this.tagName)
或e.tagName
,然而或者其他你可能有元件上的手柄来显示/隐藏)。
让我们知道这些情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.