【问题标题】:Can't set innerHTML of td on IE Mobile 6无法在 IE Mobile 6 上设置 td 的 innerHTML
【发布时间】:2015-07-14 06:55:58
【问题描述】:

我正在尝试在 IE6 Mobile 中动态创建一个表(是的,我知道,但我们正在处理摩托罗拉手持扫描仪,这就是它们所运行的),我在向 <td> 添加数据时遇到了麻烦的。我尝试了很多方法,所有方法都导致错误Object doesn't support this property or method

我尝试过的几件事,以及引发错误的行:

        ...
        var td = document.createElement('td');
        td.innerHTML = 'test'; // error, also tried innerText
      }
      tr.appendChild(td);
    }
    tbody.appendChild(tr);
  }
  table.appendChild(tbody)
}

没有错误的那一行,这一切都有效。

我也试过了:

        ...
        var td = document.createElement('td');
        td.appendChild(document.createTextNode('test')); // error
      }
      tr.appendChild(td);
    }
    tbody.appendChild(tr);
  }
  table.appendChild(tbody)
}

还有:

        ...
        var td = document.createElement('td');

        var span = document.createElement('span');
        span.innerHTML = 'test'; // also tried innerText and createTextNode
                                 // approach like example no. 2

        td.appendChild(span)
      }
      tr.appendChild(td);
    }
    tbody.appendChild(tr);
  }
  table.appendChild(tbody)
}

而且,可能不言而喻,但是,所有这些方法都适用于我在我的 PC 上测试过的所有浏览器,包括来自 IE 开发人员工具的 IE5 模式。

【问题讨论】:

  • 如果手动构建 html 会怎样? tr.appendChild("测试");
  • 您是否尝试过 jQuery,希望它能处理这些怪事?
  • 您遇到的 JavaScript 错误是什么?您是否尝试过先附加<td>,然后设置innerHTML
  • 查理,我会试试的。还有@ShawnJacobson,我有,不幸的是,jQuery 完全不能在这些设备上运行。
  • jQuery 从来不支持 IE Mobile,这些问题实在是太糟糕了,无法解决。 IE Mobile 6.0 的标准支持介于 IE3 和 IE4 之间。大部分基本 JavaScript 和 DOM Level 0(实际上,包括insertCell)都完全丢失了。 IIRC 我不得不在单个 div 的 innerHTML 中创建一个完整的表,因为我无法更改比这更细粒度的任何东西。 @Tom 很抱歉,您必须使用这种卑鄙的浏览器回归

标签: javascript html windows-ce internet-explorer-6


【解决方案1】:

我感觉这是页面上的名称冲突。更改变量名称。

    ...
    var tdx = document.createElement('td');
    tdx.innerHTML = 'test';
  }
  tr.appendChild(tdx);
  ...

【讨论】:

  • 实际上我之前也尝试过这个——只是再次尝试了同样的问题。不过还是谢谢你的建议
猜你喜欢
  • 2011-06-11
  • 2011-03-31
  • 1970-01-01
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
相关资源
最近更新 更多