javascript appendChild似乎不适用于IE

时间:2016-12-05 22:43:14

标签: javascript jquery internet-explorer append

我想列出link.php上的点击次数,打开新标签后,将div添加到旧标签页并通过从文件加载来填充它。这在firefox& Chrome但似乎不适用于任何版本的IE。在那些,链接工作正常,但div不附加:

<script type="text/javascript">
    document.addEventListener("click", function(e) {    
        var href = e.target.closest("a").href || "";
        if (href.indexOf("link.php") > -1) {

            var div = document.createElement("div");
            div.setAttribute("id", "lightbox");
            div.setAttribute("style",   "width:100%;height:100%;background:#000;position:fixed;top:0;left:0;zIndex:50;MsFilter:progid:DXImageTransform.Microsoft.Alpha(Opacity=60);filter:alpha(opacity=60);MozOpacity:0.6;KhtmlOpacity:0.6;opacity:0.6");
            document.body.appendChild(div);

            var divv = document.createElement("div");
            divv.setAttribute("id", "N_div");
            document.body.appendChild(divv);
            $( "#N_div" ).load( "/forms/div.php" );
            $("#N_div").fadeIn("fast");
        }
    }, false);
</script>

使用jquery 2.1.4(虽然我尝试使用3.1.1并且它没有更好的工作)。 Doctype是这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

我诚实地尝试在PC上调试IE,但老实说,我现在已经被mac OS宠坏了,我几乎不能操作PC了。这只是一种悲惨的经历,我认为这可能是一个常见的,容易解决的问题。有什么事情会让你感到灾难性的错误吗?

1 个答案:

答案 0 :(得分:0)

根据MDN(https://developer.mozilla.org/en-US/docs/Web/API/Element/closest),IE看起来并不支持closest本地。目前你可以尝试使用jQuery方法。

$(e.target).closest('a').attr('href') || ""