繁体   English   中英

IE6不会显示Javascript工具提示…您甚至如何开始调试它?

[英]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 StudioVisual 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM