
后台传来一段 html 代码,这段代码里面嵌入了 js:
<html> <head> </head> <body> /***/ <script> window.Onload= function () { alert("页面加载完成====》 onload"); } </script> </body> </html> 前台使用 window.write 将后台传过来的 html 写入到页面上,但是里面的 window.onload 并没有执行,需要手动调用 window.onload();
请教大佬们这其中的原理是什么?
1 DoveAz 2019 年 8 月 2 日 这能有啥原理啊,你直接写在当前页面,当前页面已经 onload 过了呗,你在新页面打开这段代码才行 |
2 ashong 2019 年 8 月 2 日 写入代码的时候页面已经加载完了,onload 已经触发过 |
3 cococoder 2019 年 8 月 2 日 直接插入整个 html,并不会重新执行啊,这个跟重新加载页面不一样,已经 onload 过了 |
4 beastk 2019 年 8 月 2 日 via iPhone 试试<img src=1 Onerror=alert('onload')> |
5 Caballarii 2019 年 8 月 2 日 what are you neng 啥嘞 |
6 shintendo 2019 年 8 月 2 日 事件又不是 promise,事件错过了就错过了 |
7 mamahaha 2019 年 8 月 2 日 ```js window.addEventListener("DOMContentLoaded",()=>{ alert("页面加载完成====》 onload"); }) ``` |
8 Takamine 2019 年 8 月 2 日 比较好奇这是个什么业务场景。:dog: |
9 phxsuns 2019 年 8 月 2 日 你们的技术方案怕是有问题。。。 |
10 v2dev OP 业务一言难进,是跟京东的合作。。感谢几位老哥! |
11 greenman0007 2019 年 8 月 2 日 1. 你直接加载的话,后台写过来的 HTM L 应该不要带 <html><head><body> 标签; 2. 如果页面有引入 jQuery 的话,后台可以用 $(function(){}),这种方式会执行。 |