首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
V2EX  ›  JavaScript

关于 js 的一点疑问

  •  
  •   zhuwd · 104 天前 · 1105 次点击
    这是一个创建于 104 天前的主题,其中的信息可能已经有所发展或是发生改变。

    后台传来一段 html 代码,这段代码里面嵌入了 js:

    <html>
    <head>
    </head>
    <body>
         /***/
         <script>
            window.onload = function () {
                alert("页面加载完成====》 onload");
            }
        </script>
    </body>
    </html>
    

    前台使用 window.write 将后台传过来的 html 写入到页面上,但是里面的 window.onload 并没有执行,需要手动调用 window.onload();

    请教大佬们这其中的原理是什么?

    11 回复  |  直到 2019-08-02 18:08:08 +08:00
        1
    DoveAz   104 天前
    这能有啥原理啊,你直接写在当前页面,当前页面已经 onload 过了呗,你在新页面打开这段代码才行
        2
    ashong   104 天前
    写入代码的时候页面已经加载完了,onload 已经触发过
        3
    cococoder   104 天前
    直接插入整个 html,并不会重新执行啊,这个跟重新加载页面不一样,已经 onload 过了
        4
    beastk   104 天前 via iPhone
    试试<img src=1 onerror=alert('onload')>
        5
    Caballarii   104 天前
    what are you neng 啥嘞
        6
    shintendo   104 天前
    事件又不是 promise,事件错过了就错过了
        7
    mamahaha   104 天前
    ```js
    window.addEventListener("DOMContentLoaded",()=>{
    alert("页面加载完成====》 onload");
    })
    ```
        8
    Takamine   104 天前
    比较好奇这是个什么业务场景。:dog:
        9
    phxsuns   104 天前
    你们的技术方案怕是有问题。。。
        10
    zhuwd   104 天前
    业务一言难进,是跟京东的合作。。感谢几位老哥!
        11
    greenman0007   104 天前
    1. 你直接加载的话,后台写过来的 HTM L 应该不要带 <html><head><body> 标签;
    2. 如果页面有引入 jQuery 的话,后台可以用 $(function(){}),这种方式会执行。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   965 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 21:25 · PVG 05:25 · LAX 13:25 · JFK 16:25
    ♥ Do have faith in what you're doing.