了解一个基本的onChange示例

时间:2012-12-01 01:51:16

标签: javascript dom

我刚刚通过this MDN tutorial了解DOM。在最后一节“测试DOM API”下,提供了以下代码:

<html>
  <head>
    <title>DOM Tests</title>
    <script type="application/javascript">
    function setBodyAttr(attr,value){
    if (document.body) eval('document.body.'+attr+'="'+value+'"');
    else notSupported();
    }
    </script>
  </head>
  <body>
    <div style="margin: .5in; height: 400;">
      <p><b><tt>text</tt>color</b></p>
      <form>
        <select onChange="setBodyAttr('text',
        this.options[this.selectedIndex].value);">
          <option value="black">black
          <option value="darkblue">darkblue
        </select>
        <p><b><tt>bgColor</tt></b></p>
        <select onChange="setBodyAttr('bgColor',
        this.options[this.selectedIndex].value);">
          <option value="white">white
          <option value="lightgrey">gray
        </select>
        <p><b><tt>link</tt></b></p>
        <select onChange="setBodyAttr('link',
        this.options[this.selectedIndex].value);">
          <option value="blue">blue
          <option value="green">green
        </select>  <small>
        <a href="http://www.brownhen.com/dom_api_top.html" id="sample">
        (sample link)</a></small><br>
      </form>
      <form>
        <input type="button" value="version" onclick="ver()" />
      </form>
    </div>
  </body>
</html>

除了链接颜色外,一切都按预期工作:在Chrome下,只有在更改文本颜色(即第一个属性)后才会应用链接颜色的更改。不应该立即进行所有更改吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

这不是改变页面上链接颜色的正确方法(应该用CSS完成),并且在HTML版本4中不推荐使用body.link属性(http://www.w3schools.com /tags/att_body_link.asp)。我不能100%肯定,但我会说它不起作用的原因是因为Chrome是采用网络标准的现代浏览器 - body.link属性不是标准。