推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
lisisi

直接在页面上写<script>...</script>和用 window.onload = function(),有什么区别吗?

  •  
  •   lisisi · Apr 13, 2019 · 5786 views
    This topic created in 2766 days ago, the information mentioned may be changed or developed.

    直接在页面上写<script>...</script>

    <script type="text/javascript">
        document.getElementById('xxx').style.color="#ff0000";
    </script>
    

    和用 window.onload = function() 有区别吗?

    <script>
        window.onload=function(){
        document.getElementById('xxx').style.color="#ff0000";
        }
    </script>
    
    13 replies  •  2019-04-29 17:02:18 +08:00
    dobelee
    dobelee
    Apr 13, 2019 via Android
    1
    这个。。楼主有学过 js 吗?
    Mutoo
    Mutoo
    Apr 13, 2019
    2
    在页面上直接写,会在 DOM 树边解释时边执行,此时的 DOM 树可能并不完整(#xxx 可能未被创建)。
    而 window.onload 是一个事件回调函数,在 DOM 树被解析完成后触发执行。此时的 DOM 树是完整的(#xxx 已经创建)。
    xupefei
    xupefei
    Apr 13, 2019
    3
    onload is most often used within the <body> element to execute a script once a web page has completely loaded all content (including images, script files, CSS files, etc.).

    第一种写法在执行的时候 xxx 元素可能还没加载出来。
    glouhao
    glouhao
    Apr 13, 2019 via Android
    4
    事件啊, 那个=前面是事件,当我脱下裤子再尿出来和直接尿出来的区别。大概好像这意思,你百度吧,我是做 seo 的,不懂代码。
    icanfork
    icanfork
    Apr 13, 2019
    5
    window.onload 楼主按照英文字面意思理解即可解决你的疑问
    icanfork
    icanfork
    Apr 13, 2019
    6
    @glouhao 额,很多论坛里面我只有 7-8 成把握的问题我都不敢回复别人,因为怕有 3 成几率错了而误导了别人
    FEDT
    FEDT
    Apr 13, 2019 via iPhone
    7
    查下文档有这么难吗
    caomu
    caomu
    Apr 13, 2019 via Android
    8
    借问一下,把 script 放在 body 最下面可以吗?
    shuAS
    shuAS
    Apr 13, 2019
    9
    @caomu 可以,此时页面 DOM 已经加载完毕
    qiqi669
    qiqi669
    Apr 14, 2019
    10
    一个是当浏览器解析到这块代码的时候立刻执行,
    另一个是等网页资源全部加载完成后执行,比如你网页有比较多的图片,那么图片没加载完成,js 代码也不会执行,只有全部加载完成后才会执行。
    botian
    botian
    Apr 14, 2019
    11
    。。。。建议楼主去好好学学 javascript 吧,这种问题专门来发帖的时间,看文档都看会了
    sandersyao
    sandersyao
    Apr 22, 2019
    12
    同行还是那么刻薄,建议楼主可以把带这个 id 属性的标签写在这个 script 标签后面看看效果
    dfourc
    dfourc
    Apr 29, 2019
    13
    @sandersyao #12 不是这么刻薄,而是这问题太基础了 百度一分钟的事
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   896 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 16:57 · PVG 00:57 · LAX 08:57 · JFK 11:57
    ♥ Do have faith in what you're doing.