我有一些有效的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的最新更新!
答案 0 :(得分:2)
我懒得启动虚拟机,但如果我没记错,IE8不会返回引号。一个简单的console.log(d)将验证。
pattern = /id="?subblock_(\d+)"?/,