Я имею абсолютно расположенный div
то, что я хочу показать, когда пользователь нажимает на ссылку. onclick
из ссылки вызывает js функцию, которая устанавливает дисплей отделения для блокирования (также попробованный: "", inline
, table-cell
, inline-table
, и т.д.). Это работает отлично в IE7, нисколько в любом браузере, который я попробовал (FF2, FF3, Opera 9.5, Safari).
Я попытался добавить предупреждения прежде и после вызова, и они показывают, что дисплей изменился от none
кому: block
но div
не отображается.
Я могу добраться div
отображаться в FF3, если я изменяю значение дисплея с помощью инспектора HTML Firebug (но не под управлением JavaScript через консоль Firebug) - таким образом, я знаю, что это не просто обнаруживается вне экрана и т.д.
Я попробовал все, включая что я могу думать:
Какие-либо идеи о том, что могло вызвать это?
Начиная с установки свойств с JavaScript никогда, казалось, не работал, но установка Firebug использования осматривают, сделал, я начал подозревать, что идентификационный селектор JavaScript был поврежден - возможно, было несколько объектов в DOM с тем же идентификатором? Источник не показал, что было, но цикличное выполнение через все отделения, использующие JavaScript, я нашел, что это имело место. Вот функция, которую я закончил тем, что использовал для показа всплывающего окна:
function openPopup(popupID)
{
var divs = getObjectsByTagAndClass('div','popupDiv');
if (divs != undefined && divs != null)
{
for (var i = 0; i < divs.length; i++)
{
if (divs[i].id == popupID)
divs[i].style.display = 'block';
}
}
}
(служебная функция getObjectsByTagAndClass не перечисленный)
Идеально я узнаю, почему тот же объект вставляется многократно, но я не управляю платформой рендеринга, просто ее исходные данные.
Таким образом, при отладке проблем как это, не забудьте проверять на дублирующиеся идентификаторы в DOM, который может повредить getElementById.
Всем, кто ответил, спасибо за Вашу справку!
Проверьте ошибочную консоль (Меню Инструментов> Ошибочная Консоль в Firefox 3), чтобы удостовериться, что нет другой ошибки, происходящей это, Вы не видите, который мешает Вашему сценарию работать.
Можно ли обеспечить некоторую разметку, которые воспроизводят ошибку? Ваша ситуация должна иметь некоторое отношение к Вашему коду, так как я могу заставить это работать над IE, FF3 и Opera 9.5:
function show() {
var d = document.getElementById('testdiv');
d.style.display = 'block';
}
#testdiv {
position: absolute;
height: 20px;
width: 20px;
display: none;
background-color: red;
}
<div id="testdiv"></div>
<a href="javascript:show();">Click me</a>
Попытайтесь установить высоту и ширину отделения, и удостоверьтесь, что это находится на вершине путем установки его z-индекса выше, чем все остальное. Если абсолютно расположенное отделение в элементе, который относительно расположен, это главное, и левое местоположение базируется от вершины и покинуто относительно расположенного элемента. Попытайтесь поместить свое отделение только под элементом тела.
Нашел ответ: Мне нужно использовать следующее, чтобы он работал в обоих браузерах:
document.getElementById('editRow').style.display = '';
В Firefox 3.5 есть досадная ошибка отображения, но не в IE7 или Firefox 2.0.9
У меня абсолютная позиция 3 DIV - первая с простым текстом; второй с меню CSS (тип молока с UL и LI) и третий то же самое. Третья не будет отображаться вообще, даже если кодировка была проверена и признана идеальной с помощью валидатора HTML W3C.
В качестве временной меры я объединил содержимое второго и третьего DIV.
Все должно быть плохо с Mozilla, когда IE7 и FF2 отображают ОК, но не FF 3.5