IE11 querySelector()为null,但querySelectorAll()不是

时间:2019-05-08 17:16:05

标签: javascript internet-explorer-11

我正在尝试修复特定于IE11 / Windows 7的错误,该错误在iframe中,而iframeEl.querySelector('#description');返回null

但是,如果我更改为iframeEl.querySelectorAll('#description');,它将返回nodeList。

此DOM查找有什么区别? enter image description here

还有,为什么getElementById不可用?

enter image description here

它是否与<meta http-equiv="X-UA-Compatible" content="IE=Edge">有关?

1 个答案:

答案 0 :(得分:0)

无法单方面再现您的问题,如果我使用querySelectorAll()方法,则返回数组为空,如果我使用querySelector()方法,则结果为null。

作为一种解决方法,我建议您尝试使用以下代码从iframe中获取元素(在我这方面效果很好)。

<head>
    <meta charset="utf-8" />
    <title></title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
        $(function () {
            $("#btnGetvalue").click(function () {

                var iframe = document.getElementById("iframeId");
                var elmnt = iframe.contentWindow.document.getElementById("txtname").value;

            });
        });
    </script>
</head>
<body>
    <iframe  id="iframeId" src="HtmlPage19.html" width="100%" height="500px"></iframe>
    <input id="btnGetvalue" type="button" value="GetValue" />
</body>