<!DO
CTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<head>
<script>
  document.getElementById("ttt").onclick = y1; 
function y1()
{
  window.open("test.jpg","test","height=400,width=400,menubar=no,location=yes,Resizable=no");
  return false;
  }
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<a href="#" id="ttt">link1</a>
</body>
</html>

解决方案 »

  1.   

    <!DO
    CTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
    <html xmlns="">
    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    <body>
    <a href="#" id="ttt">link1</a>
    <script type="text/javascript">
      document.getElementById("ttt").onclick = y1; 
    function y1()
    {
      window.open("test.jpg","test","height=400,width=400,menubar=no,location=yes,Resizable=no");
      return false;
      }
    </script>
    </body>
    </html>这样试试
    元素还没加载 所以找不到对应的元素
      

  2.   

    在执行document.getElementById("ttt").onclick = y1;这句话时
    body还没有加载,document.getElementById("ttt")是获取不到任何元素的,
    document.getElementById("ttt").onclick = y1; 可以改成
    window.onload = function() {
    document.getElementById("ttt").onclick = y1; 
    };
      

  3.   

    document.getElementById("ttt")应该没有获取到元素。
    加上onload试试。
      

  4.   

    楼上的楼上描述的:在执行document.getElementById("ttt").onclick = y1;这句话时
    body还没有加载,document.getElementById("ttt")是获取不到任何元素的,
    document.getElementById("ttt").onclick = y1; 可以改成
    window.onload = function() {
    document.getElementById("ttt").onclick = y1; 
    }; 但是等body加载完后(页面上已经显示link 了),为什么 点击他还是不行呢
      

  5.   

    在执行document.getElementById("ttt").onclick = y1;这句话时
    body还没有加载,document.getElementById("ttt")是获取不到任何元素的
    以上的描述是不是意味着document.getElementById("ttt")在页面显示出来之后就失效了???
      

  6.   


    document.getElementById("ttt");是查找一个element对象,但这个对象在这条语句执行到时还没有加载,所以查找不到任何元素。页面显示出来之后就可以找到了,所以绑定click的语句要放在ttt生成之后,两个方法,一个是放到onload里,另一个是js语句放到html语句后面。
      

  7.   

    那能不能得出这样的结论:
    javascript语句如果牵涉到操作html元素的话,必须写在这些元素之后
      

  8.   

    不是必须写在这些元素之后,而是要访问这些元素时确保这些元素已经被浏览器加载解析。 
    比如在onload事件里访问这些元素