繁体   English   中英

标签未在IE8中找到动态创建的元素

[英]Label not finding dynamically created element in IE8

在网页上,我有一个javascript函数,该函数添加具有以下层次结构的div:

 <div style="display:inline-block;overflow:hidden;"> <label for="myInput" style="display: inline-block; max-width: 300px;"> <button disabled style="pointer-events:none;" >Browse to file</button> <p style="display:inline">ends up being file name</p> <img/> <input id="myInput" type="file" style="width:0px;"/> </label> </div> 

这个想法是,单击标签中的任何内容都会触发文件输入,这在IE8以外的任何地方都有效。

在IE8中,动态创建的标签不会触发文件输入,我注意到,如果我将动态创建的标签的'for'属性更改为指向不是动态创建的文件输入,它将正常工作。

看来标签找不到动态创建的文件输入。

问题:-如何获取标签以查看动态创建的文件输入? -有没有一种刷新DOM的方法,以允许标签看到文件输入?

注意:如果您使用IE11的“仿真”模式进行测试,则可以使用,但在真正的IE8浏览器中,则无法使用

我不知道为什么,但是当您使用.innerHTML填充label元素时,似乎IE8启用了预期的行为。 可能还有其他更好的黑客可以避免HTML操纵,但这可以作为一个捷径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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