Почему не динамически созданная вставка iframe показывает, а динамически созданная - нет? - PullRequest
1 голос
/ 12 ноября 2009

У меня есть пользовательский элемент управления, который состоит из текстового поля и dateextender набора инструментов управления ajax. В IE6 я сталкиваюсь с ошибкой z-index, когда календарь отображается за полями выбора.

Если в элементе управления скрыта подкладка, изначально скрытая, кажется, что она отображается нормально при отображении календаря, но когда я пытаюсь динамически создать подкладку при ее показе, она не появляется.

Я пробовал bgiframe и некоторые примеры, которые я нашел на SO, не повезло.

Вот мой код JavaScript в настоящее время ...

var dateEditorShim;

function dateEditor_OnShown(dateControl, emptyEventArgs) {
    var shimWidth = dateControl._width;
    var shimHeight = dateControl._height;

    //var dateEditorShim;
    //dateEditorShim = document.getElementById(dateEditorShimId);

    dateEditorShim = document.createElement('iframe');
    dateEditorShim.setAttribute('src', 'javascript:"";');
    dateEditorShim.setAttribute('frameBorder', '0');

    dateEditorShim.style.width = dateControl._popupDiv.offsetWidth;
    dateEditorShim.style.height = dateControl._popupDiv.offsetHeight;
    dateEditorShim.style.top = dateControl._popupDiv.style.top;
    dateEditorShim.style.left = dateControl._popupDiv.style.left;
    dateControl._popupDiv.style.zIndex = 999;
    dateEditorShim.style.zIndex = 998;
    dateEditorShim.style.display = "block";

}


function dateEditor_OnHiding(dateControl, emptyEventArgs) {
    var shimWidth = 0;
    var shimHeight = 0;

    //var dateEditorShim;
    //dateEditorShim = document.getElementById(dateEditorShimId);
    dateEditorShim.style.width = 0;
    dateEditorShim.style.height = 0;
    dateEditorShim.style.top = 0;
    dateEditorShim.style.left = 0;
    dateEditorShim.style.display = "none";
} 

Вы заметите, что у меня есть закомментированный фрагмент кода, который получает встроенный в страницу iframe, как я уже сказал, в этом случае, по крайней мере, отображается iframe, но когда я динамически создаю его, как в коде выше в настоящее время это не так. Я пытаюсь понять, почему.

Есть идеи?

1 Ответ

1 голос
/ 13 ноября 2009

Ну, я понял это. Мне просто нужно было добавить элемент к чему-либо. Итак ...

dateControl._container.appendChild(dateEditorShim);

Сделал трюк.

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