0

我正在查看从 XML/XSL 生成的网页的一些相当广泛的代码,然后让 Javascript 动态生成布局。我遇到的问题是,IE(特别是 v.10)似乎显示元素是空文本节点(如果没有值),然后是常规文本(无可编辑字段)(如果有值)。

这似乎将行为改变为直接不可编辑的文本。

从我所见,第一步是让 Javascript 通过 DOM 生成元素

input = document.createElement("input");

input.setAttribute("id", "blah");
input.setAttribute("type", "text");

然后它会将其附加到父级。然后似乎发生的是执行了一个函数,该函数再次运行该页面并插入这些字段具有的任何值。

input.value = "Hello World";

Chrome 和 Firefox 将正确显示输入字段并填充其字段,但 IE10 只会显示值,就好像它只是纯文本一样。

我从来没有使用过这种网页生成,希望有人能帮助我解决这个问题,以便我解决这个问题。改变它的工作方式(当时)不是一种选择,所以我试图纠正它,以便 IE 也很高兴。

谢谢

4

1 回答 1

2

这个特定的代码序列适用于我尝试过的所有浏览器(Chrome、IE、Firefox):

var elem = document.createElement("input");
elem.type = "text";
elem.id = "test";
document.body.appendChild(elem);
elem.value = "This is some text";

如果您的确切代码与此不同,那么您应该检查差异或发布您在 IE 中演示问题的确切代码序列,以便我们更好地了解如何调试或建议。

你可以在任何你想在这里尝试的浏览器中看到一个工作演示:http: //jsfiddle.net/jfriend00/z2FpP/

代码中需要注意的事项:

  1. .innerHTML是任何可以清除或重置子元素的父代码设置。
  2. 是字段本身.innerHTML的任何代码设置。input不应该这样做。代码应该用来设置字段.value的文本。input
  3. 代码在 IE 中运行时会出现代码错误吗?检查错误控制台或调试控制台(在 IE 中按 F12 进入调试器,您可以在其中看到错误控制台)。
  4. 字段中是否设置了任何其他属性input,可能使其只读而不是可编辑?
于 2013-05-02T22:35:57.207 回答