string.match() 仅在 IE 8 中计算为 null
string.match() evaluates to null in IE 8 only
我有一些工作的 JavaScript 代码可以在其他浏览器中完美运行,但 不适用于 IE 8。这实际上是一段简单的代码,我真的无法弄清楚问题是什么?
简而言之,while
部分永远不会在 IE 中执行(d.match(pattern)
总是 null),在所有其他浏览器中我得到正确的偏移量.
var ids = new Array(),
d = o.innerHTML, // gets correct HTML code in all browsers
pattern = /id="subblock_(\d+)"/,
p;
while (d.match(pattern) != null) {
// IE never gets here!
p = d.search(pattern);
ids[ids.length] = d.match(pattern)[1];
d = d.substr (p+14);
}
d 变量的值如下所示
<div id="subblock_0">...</div>
<div id="subblock_7">...</div>
<div id="subblock_59">...</div>
不确定,它对我来说看起来很正确,但显然微软又不同意我的看法。
注意:我已尝试使用 IE 8 和 Firefox、Chrome 和 Opera 的最新更新!
我懒得启动虚拟机了,不过我没记错的话IE8没有return引号。一个简单的 console.log(d) 可以验证这一点。
pattern = /id="?subblock_(\d+)"?/,
我有一些工作的 JavaScript 代码可以在其他浏览器中完美运行,但 不适用于 IE 8。这实际上是一段简单的代码,我真的无法弄清楚问题是什么?
简而言之,while
部分永远不会在 IE 中执行(d.match(pattern)
总是 null),在所有其他浏览器中我得到正确的偏移量.
var ids = new Array(),
d = o.innerHTML, // gets correct HTML code in all browsers
pattern = /id="subblock_(\d+)"/,
p;
while (d.match(pattern) != null) {
// IE never gets here!
p = d.search(pattern);
ids[ids.length] = d.match(pattern)[1];
d = d.substr (p+14);
}
d 变量的值如下所示
<div id="subblock_0">...</div>
<div id="subblock_7">...</div>
<div id="subblock_59">...</div>
不确定,它对我来说看起来很正确,但显然微软又不同意我的看法。
注意:我已尝试使用 IE 8 和 Firefox、Chrome 和 Opera 的最新更新!
我懒得启动虚拟机了,不过我没记错的话IE8没有return引号。一个简单的 console.log(d) 可以验证这一点。
pattern = /id="?subblock_(\d+)"?/,