![](/img/trans.png)
[英]“this” in javascript behaves differently in Internet Explorer
[英]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.