gpt4 book ai didi

javascript - 为什么非动态创建的 iframe 填充程序会显示,而动态创建的 iframe 填充程序则不会显示?

转载 作者:行者123 更新时间:2023-11-28 02:59:01 25 4
gpt4 key购买 nike

我有一个由文本字段和 ajax 控件工具包 dateextender 组成的自定义控件。在 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 至少会显示出来,但是当我像上面的代码一样动态创建它时目前还没有。我正在尝试找出原因。

有什么想法吗?

最佳答案

嗯,我明白了。我只需要将元素附加到某些东西上。所以...

dateControl._container.appendChild(dateEditorShim);

成功了。

关于javascript - 为什么非动态创建的 iframe 填充程序会显示,而动态创建的 iframe 填充程序则不会显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1719108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com