Javascript .HTML歌剧问题?

Javascript .HTML歌剧问题?,javascript,cross-browser,opera,Javascript,Cross Browser,Opera,我正在努力做到: document.getElementById("header-text").innerHTML = "something interesting"; 除了Opera,它在所有浏览器上都能正常工作。我正在运行最新版本 浏览互联网时,我发现有人说Opera不支持innerHTML。听起来不对 有什么建议吗 谢谢 编辑:这是我想要的id <div id="header-text" class="picture-text"> <!--[if g

我正在努力做到:

document.getElementById("header-text").innerHTML = "something interesting";
除了Opera,它在所有浏览器上都能正常工作。我正在运行最新版本

浏览互联网时,我发现有人说Opera不支持innerHTML。听起来不对

有什么建议吗

谢谢

编辑:这是我想要的id

<div id="header-text" class="picture-text">
          <!--[if gt IE 5]>ugly hack<![endif]-->
          Some text generated server side
         <!--[if gt IE 5]>ugly hack<![endif]-->
</div>
编辑2:我也有同样的问题:

<div id="header-text" class="picture-text">
          Static text
</div>
编辑3:

Edit4:如果删除ifwindow.opera,它将在FF中正常运行,IE发现问题:

包装节点未正确关闭

<div att1="value" att2="value"
  <div id="header-text">...</div>
</div>
AFAIK、FF和IE正在礼貌地修复标签。。。但是Opera不是,因此child DIV实际上不是DOM中的一个元素

应该行得通。id标题文本的元素是什么?您确定只有一个匹配项,并且它具有可编辑的内容吗

你能发布一些标记以便我们进行测试吗

从PPK的网站上看,似乎没有任何Opera问题:

更新:在XP上的Opera9.6.4中运行这段代码对我来说很好

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>innerHTML test</title>
<script>
  function doIt(){
    document.getElementById("header-text").innerHTML = "something interesting";
  }
</script>
</head>
<body>
  <div id="header-text" class="picture-text">
    Static text
  </div>
  <input type="button" value="Change It" onclick="doIt();"/><br/>
</body>
</html>
发现问题:

包装节点未正确关闭

<div att1="value" att2="value"
  <div id="header-text">...</div>
</div>
AFAIK、FF和IE正在礼貌地修复标签。。。但是Opera不是,因此child DIV实际上不是DOM中的一个元素

应该行得通。id标题文本的元素是什么?您确定只有一个匹配项,并且它具有可编辑的内容吗

你能发布一些标记以便我们进行测试吗

从PPK的网站上看,似乎没有任何Opera问题:

更新:在XP上的Opera9.6.4中运行这段代码对我来说很好

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>innerHTML test</title>
<script>
  function doIt(){
    document.getElementById("header-text").innerHTML = "something interesting";
  }
</script>
</head>
<body>
  <div id="header-text" class="picture-text">
    Static text
  </div>
  <input type="button" value="Change It" onclick="doIt();"/><br/>
</body>
</html>

编辑:您如何调用此函数?您是否在文档中调用它,在结尾处,是否使用window.onload

innerHTML不是w3c的有效属性,它将出现在HTML5中。它是由Microsoft创建的,出于兼容性原因,大多数其他浏览器都支持它


也就是说,我相信Opera确实支持innerHTML,不过一些Google建议它支持innerHTML。尝试更新您的Opera版本,然后看看它是否工作。

编辑:您如何调用此函数?您是否在文档中调用它,在结尾处,是否使用window.onload

innerHTML不是w3c的有效属性,它将出现在HTML5中。它是由Microsoft创建的,出于兼容性原因,大多数其他浏览器都支持它


也就是说,我相信Opera确实支持innerHTML,不过一些Google建议它支持innerHTML。尝试更新您的Opera版本,然后看看它是否有效。

我遇到了一个有点相关的问题,发现它与HTML编码的值有关。例如,当innerHTML包含一个空格而不是一个空格时,innerHTML返回时会略有不同,我通过测试innerHTML的长度确认了这一点

以下是我在尝试获取包含单个DIV的标记的innerHTML时发现的内容,该DIV包含一个编码的非中断空格:

上面的例子显示了Opera10.26如何返回innerHTML,当我检查长度时,它将在Opera中返回12

<div>&nbsp;</div>

这就是我使用的所有其他浏览器返回innerHTML IE6/7/8、Firefox 3.x、Chrome等的方式,当我检查长度时,在所有其他浏览器中返回17。

我遇到了一个有点相关的问题,发现它与HTML编码的值有关。例如,当innerHTML包含一个空格而不是一个空格时,innerHTML返回时会略有不同,我通过测试innerHTML的长度确认了这一点

以下是我在尝试获取包含单个DIV的标记的innerHTML时发现的内容,该DIV包含一个编码的非中断空格:

上面的例子显示了Opera10.26如何返回innerHTML,当我检查长度时,它将在Opera中返回12

<div>&nbsp;</div>

这就是我使用的所有其他浏览器返回innerHTML IE6/7/8、Firefox 3.x、Chrome等的方式,当我检查长度时,在所有其他浏览器中返回17。

这是唯一匹配的。有条件的评论等,它认为,这可能是一个问题吗?这真的很奇怪。。。更新了问题,包括如何调用函数。谢谢你的帮助,真是太棒了!再次感谢。我为在代码中留下这样一个可怕的错误而感到难过,甚至没有考虑寻找它!不用担心,这会发生在我们所有人身上。我太专注于1元素了,以至于我没有考虑它的上下文。这是唯一的匹配。有条件的评论等,它认为,这可能是一个问题吗?这真的很奇怪。。。更新了问题,包括如何调用函数。谢谢你的帮助,真是太棒了!再次感谢。我为在代码中留下这样一个可怕的错误而感到难过,甚至没有考虑寻找它!不用担心,这会发生在我们所有人身上。我也非常关注这1个元素,以至于我没有太多考虑它的上下文。正如我所说,我使用的是OperaI的最新版本。我看到了这个论坛帖子,而谷歌和更新^^没有修复任何东西。正如我所说,我使用的是OperaI的最新版本
OperaI在谷歌搜索和更新时看到了这篇论坛帖子^^^没有修复任何问题,但你有什么确切版本的Opera?我在Windows XP上运行了9.64,而在XP上刚刚更新为9.64,并运行了你的静态div/JS测试。。。而且效果很好。一定还有别的事情在发生。这真的有点可疑,因为上面的这些都对我有用。。。编辑1-4这对我的歌剧也很有用。现在我所能建议的就是卸载并重新安装Opera,然后看看它是否能正常工作。你有什么版本的Opera?我在Windows XPI上运行了9.64,在XP上刚刚更新为9.64,并运行了你的静态div/JS测试。。。而且效果很好。一定还有别的事情在发生。这真的有点可疑,因为上面的这些都对我有用。。。编辑1-4这对我的歌剧也很有用。这是Opera中的一个已知错误,应该在Opera 11或之后不久修复。这是Opera中的一个已知错误,应该在Opera 11或之后不久修复