IE6 не будет отображать Javascript Tooltip ... как вы вообще начали отлаживать это? - PullRequest
1 голос
/ 29 декабря 2010

Я использую плагин всплывающей подсказки (разработанный в доме кем-то, кто находится в отпуске), который работает везде, но в IE6.Естественно, он используется на сайте людьми, которые используют только IE6, поэтому мне нужно найти способ, чтобы он отображался.

Как бы вы начали отлаживать такие вещи?Я погуглил проблему, чтобы увидеть, что другие плагины всплывающей подсказки javascript сделали, чтобы справиться с этим, но не может найти ничего, что относится или решает мою проблему.Итак, я бы с удовольствием отладил его сам, но я действительно не знаю, с чего начать!

Как бы вы начали пытаться взломать этот орех?

Некоторый код:

В html мы вставляем следующее (с отображением: в css ничего не установлено) ...

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: блокировка при наведении на ссылку привязки.

Итак ... с чего бы вам начать отладку проблемы JavaScript в IE6?У меня IE6 запущен на ВМ, поэтому я могу работать с ним ... просто не могу заставить его что-либо сказать мне о том, что может происходить.

Ответы [ 4 ]

2 голосов
/ 29 декабря 2010

Установите панель инструментов разработчика IE и установите Visual Web Developer Express (в которой есть настоящий отладчик)

1 голос
/ 29 декабря 2010

Правильно ли вставляется HTML-код в DOM? В случае ошибки синтаксического анализа методы DOM в IE будут подавлены (невозможно вставить недопустимый HTML в IE6). Это шаг 1. Убедитесь, что разметка действительно есть (вид источника в порядке).

Тогда посмотрите, срабатывает ли ваше событие: поместите предупреждение в (предположительно) обработчик щелчков. Посмотрите, действительно ли ваша функция изменения css запускается.

Тогда посмотрите, есть ли у вашей функции изменения css дескриптор объекта. Попробуйте что-то вроде alert(this.tagName) (или e.tagName, или же у вас может быть указатель на элемент для отображения / скрытия).

Дайте нам знать, как они идут.

1 голос
/ 29 декабря 2010

Заставить IE работать с JS, который работает в любом другом браузере, - большая проблема, поэтому я сочувствую этому.

Что бы я сделал в таком случае - взломать исходный код, который фактически генерирует иотображение всплывающей подсказки на странице.Добавьте туда несколько предупреждений или измените document.title в разных точках кода.Посмотрите, может ли он дойти до тех частей, где должна появиться всплывающая подсказка.

Если он равен до стадии «рендеринга» кода, измените настройки отладки, чтобы сообщитьчто находится внутри элемента всплывающей подсказки, каков размер элемента и т. д. Как можно больше информации о контейнере tooptip.Что-то там может торчать, например элемент с шириной / высотой 0 или полностью отсутствующими данными.

По сути, я бы попытался сузить это до проблемы «извлечения данных» или «рендеринга».

1 голос
/ 29 декабря 2010

В этом случае я бы использовал IE Developer Toolbar , чтобы увидеть, правильно ли HTML-код был добавлен в документ.Если это так, то мы знаем, что проблема не в утверждении, которое вы вставили в свой вопрос.Если его нет в вашем документе (в этом случае вы, вероятно, получаете сообщение об ошибке скрипта), я бы попытался изменить строку HTML-кода всплывающей подсказки на

var noteContainer = '<div style="float:left;" class="ttip-container"></div>';

Проверьте правильность добавления.Если это так, постепенно добавляйте больше подсказок, пока не получите ошибку.В этот момент у вас будет гораздо лучшее представление о том, что вызывает ошибку синтаксического анализа в IE6.

В общем, отладка «старой школы» в IE6-7 с использованием alert () все еще эффективнаво многих ситуациях.

Visual Studio и Visual Web Developer Express - отличные варианты, но они немного тяжелы в отношении системных ресурсов и могут раздражатьработать с виртуальной машиной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...