免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2451 | 回复: 1
打印 上一主题 下一主题

window.onload()问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-07 15:15 |只看该作者 |倒序浏览
刚开始学javascript,有个onload的问题问下。
先贴下代码

网页:gallery.html
<html>
        <head>
        <title>Image Gallery</title>
        </head>
        <script type="text/javascript" src="scripts/showPic.js"></script>
        <link rel="stylesheet" href="styles/layout.css" type="text/css" media="screen" />
        <body>
                <h1>Snapshots</h1>
                <ul id="imagegallery">
                        <li>
                                <a href="images/cannon.jpg" title="cannon">Cannon</a>
                        </li>
                        <li>
                                <a href="images/yao.jpg" title="yao">Yao</a>
                        </li>
                        <li>
                                <a href="images/v2.jpg" title="v2">V2</a>
                        </li>
                </ul>
                <img id="placeholder" src="images/placeholder.jpg" alt="my image gallery" />
                <p id="description">Choose an image.</p>
        </body>
</html>

js:showPic.js
function prepareGallery()
{
        var gallery = document.getElementById("imagegallery");
        alert(gallery);
               
        var link = gallery.getElementsByTagName("a");

        for (var i=0; i>link.length; i++)
        {
                link.onclick = function(){return showPic(this)};
                alert(link);
        }
}

function showPic(whichpic)
{
        var source = whichpic.getAttribute("href");
        var placeholder = document.getElementById("placeholder");
       
        placeholder.setAttribute("src", source);
       
        var text = whichpic.getAttribute("title");
        var description = document.getElementById("description");
        description.firstChild.nodeValue = text;
       
        return false;
}

window.onload = prepareGallery();


我的问题是这样:
prepareGallery()应该是在网页加载后执行的吧?为什么prepareGallery中的alert(gallery)输出的是null呢?应该是个object才对啊?

哪位大侠给指点下吧!

论坛徽章:
0
2 [报告]
发表于 2008-07-10 21:33 |只看该作者
window.onload事件是在页面开始加载时执行的,就是说在加载<body></body>之间的内容前执行的。
    当页面加载时触发了window.onload(),而后面的标签还没有加载,所以就会弹出null。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP