Javascript 和 Internet Explorer 8 错误

标签 javascript html regex internet-explorer-8

我有以下几行 Javascript:

function SetTabIndex() {
    var test = document.getElementsByTagName("input");

    for (var i = 0; i < test.length; i++) {

        var cssText = test[i].getAttribute('style'),
            tabindex = cssText.match(/tabindex\s*:\s*(\d+)/);

        if (tabindex) {
            test[i].setAttribute('tabindex', tabindex[1]);
        }
    }
}

当我在本地运行它时,脚本运行并完全按照我的意愿运行。但是,当我把它放在我的目标系统(只有 IE8 且无法更新)上时,代码不会运行。

我检查了我的日志,我收到以下错误:

Object doesn't support this property or method

当我点击它旁边的链接时,它会将我带到以下代码行:

tabindex = cssText.match(/tabindex\s*:\s*(\d+)/);

我已经尝试取出我的一些正则表达式代码,但它仍然会抛出一个错误。当我拿走那条线并输入一些控制台输出时,一切正常。

是否有特殊原因说明为什么这在 IE8 上不起作用,即使我在我的更新版本的 IE 上对其进行了本地测试,并将其设置为可以很好地模拟 IE8?

最佳答案

Internet explorer 8 JScript regular expression bug给出了以下答案:

The issue here was that "\s" in javascript does not include a non breaking space in IE but includes a non breaking space in FF.

关于Javascript 和 Internet Explorer 8 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191306/

相关文章:

html - 关于 CSS 浏览器兼容性问题的建议

javascript - JS DOM 操作

ruby-on-rails - 验证字符串是 youtube 或 vimeo 视频的 url 的正则表达式是什么?

javascript - 使用 Regex 和 JS 迭代字符串

javascript - 将对象与数组中的对象进行比较并替换键匹配的值

javascript - Phonegap 状态栏通知、Android、iOS

javascript - 调整窗口大小时重置 JQuery 函数

c# - 两个字符的正则表达式

javascript - Flight.js 组件实例应该使用共享变量吗?

javascript - 使用 JQ 的 Ajax 请求在 Chrome 中出现错误 : "Failed to load resource"