Javascript ie8中此操作错误的源HTML无效
我明白了 SCRIPT601:此操作的源HTML无效。 ext-all-debug.js,第6769行,字符21 在IE 8中 这是电话线Javascript ie8中此操作错误的源HTML无效,javascript,internet-explorer,extjs,Javascript,Internet Explorer,Extjs,我明白了 SCRIPT601:此操作的源HTML无效。 ext-all-debug.js,第6769行,字符21 在IE 8中 这是电话线 el.insertAdjacentHTML(hashVal[0], html); 调试时,html中的值为“1” 这个问题我坚持了好几天。这与评级功能有关。我认为由于这个错误,评级星没有显示在ie 8中。其他浏览器也可以。 我已经给出了下面代码的相应部分。我正在使用extjs var starLink = star.createChild({
el.insertAdjacentHTML(hashVal[0], html);
调试时,html中的值为“1”
这个问题我坚持了好几天。这与评级功能有关。我认为由于这个错误,评级星没有显示在ie 8中。其他浏览器也可以。
我已经给出了下面代码的相应部分。我正在使用extjs
var starLink = star.createChild({
tag: 'a',
html: this.values[i],
title: this.showTitles ? this.titles[i] : ''
});
在创建此元素时,调用将转到以下部分,并且在上面指定的行上发生错误
insertHtml : function(where, el, html){
var hash = {},
hashVal,
range,
rangeEl,
setStart,
frag,
rs;
where = where.toLowerCase();
hash[beforebegin] = ['beforeBegin', 'previousSibling'];
hash[afterend] = ['afterEnd', 'nextSibling'];
if (el.insertAdjacentHTML) {
if(tableRe.test(el.tagName) && (rs = insertIntoTable(el.tagName.toLowerCase(), where, el, html))){
return rs;
}
hash[afterbegin] = ['afterBegin', 'firstChild'];
hash[beforeend] = ['beforeEnd', 'lastChild'];
if ((hashVal = hash[where])) {
el.insertAdjacentHTML(hashVal[0], html);
return el[hashVal[1]];
}
} else {
IE对使用.innerHTML、.insertAdjacentHTML和类似文件非常挑剔 传递的HTML必须是完美的结构-它不允许任何类型的错误。如果有的话,根本不行。其他浏览器将执行与文档其余部分相同的“最佳猜测” 尝试输入一些非常简单的HTML值,如:
<p>Hello World!</p>
你好,世界
你会发现它是有效的。在这种情况下,您需要找出所提供的HTML有什么问题。如果它不起作用,那么您就有另一个问题。虽然我们不知道您正在创建什么元素以及在哪里,但我假设您正在尝试向
表中添加一个新的tr
元素。然而,这在IE<10中是不可能的。较旧的IE具有与其他浏览器完全不同的表模型,无法使用insertAdjacentHTML()
访问表以创建行(td
s)。另外,table
和tr
的直接后代的innerHTML
也是只读的
在IE中向表中添加新行的最佳方法是使用insertRow(index)
方法<代码>索引
是要添加行的位置。默认情况下,索引
为-1,这将在表的末尾添加一个新行
MSDN上的这篇文章可能会有所帮助
顺便说一句,如果((hashVal=hash[where])在新浏览器中不再是有效语法。我已经编辑了我的问题。你们能再看一次吗?答案仍然适用。一个
“
有一个无效的链接。我按照你说的做了。但是仍然是相同的错误var starLink=star.createChild({tag:'a',html:this.values[I],href:'javascript:void',title:this.showthes?this.titles[I]:'})
它不是一个表。相反,我编辑了我的问题。你能再看一次吗?@1355我不熟悉extjs,但是…你确定你发布的代码是实际的错误源吗?(ext-all-debug.js,第6769行第21个字符
).IE devtools有时会在指向正确的错误行时出错,甚至指向正确的js文件。您是否使用其他浏览器测试了代码?