簡體   English   中英

Internet Explorer 11在兩台計算機上的行為有所不同

[英]Internet Explorer 11 behaves differently on two machines

我在計算機上運行IE 11。 我有一個使用getElementsByClassName的網頁。 當我在機器上訪問該網頁時,該頁面已送達並且可以正常工作(它執行getElementsByClassName)。 如果我也使用IE訪問另一台計算機上的同一網頁,則找不到方法getElementsByClassName。 如果我將提供給瀏覽器的代碼保存在故障機器上並對其進行訪問,則保存的頁面可以正常工作(它執行elemmentsByClassName的工作)。 到底是怎么回事? 如何告訴瀏覽器使用具有getElementsByClassName的DOM或javascript版本?

var list = document.getElementsByClassName("mrClickableRow");

確保IE使用正確的文檔模式來呈現您的頁面,否則,它會模擬舊版本的DOM-API,這可能會引起一些問題。

通過在IE中點擊F12或通過設置菜單選擇它來打開開發人員工具。 然后轉到仿真選項卡,然后查看文檔模式下拉菜單。

IE 9提供了document.getElementsByClassName ,您確定將JS與<script type="text/javascript">集成在一起嗎?

PS在</body> (body結束標記)之前使用<script>

對於兼容性問題,可以使用此功能。

window.getElementsByClassName = function(node, classname) {
    var a = [];
    var re = new RegExp('(^| )' + classname + '( |$)');
    var els = node.getElementsByTagName("*");
    for (var i = 0, j = els.length; i < j; i++)
        if (re.test(els[i].className)) a.push(els[i]);
    return a;
}

if (!document.getElementsByClassName) {
    document.getElementsByClassName = function(className) {
        return window.getElementsByClassName(document.body.parentNode, className);
    };
}

但是請注意,此函數和內置函數略有不同:使用內置document.getElementsByClassName函數時,它將返回HTMLCollection 如果然后刪除HTMLCollection中包含的元素的類,則該元素的類也會從HTMLCollection中刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM