如何将 onload 事件添加到 div 元素

IT技术 javascript html
2021-02-08 09:35:01

如何onload向元素添加事件?

我可以用吗:

<div onload="oQuickReply.swap();" ></div>

为了这?

6个回答

不,你不能。使其工作的最简单方法是将函数调用直接放在元素之后

例子:

...
<div id="somid">Some content</div>
<script type="text/javascript">
   oQuickReply.swap('somid');
</script>
...

或者 - 甚至更好 - 就在</body>

...
<script type="text/javascript">
   oQuickReply.swap('somid');
</script>
</body>

...所以它不会阻止加载以下内容。

这个答案不再相关。这是一个新的
2021-03-22 09:35:01
这是一个反模式,因为最好将所有 js 保存在自己的文件中?当某些元素加载到文档中时,有没有办法有选择地运行 js?
2021-03-24 09:35:01
根据使用情况,最好不要把它放在</body>. fe 如果您想隐藏<div>仅当 javascript 已启用但避免“闪烁”。可见时间取决于浏览器加载/解析所有内联/外部脚本需要多长时间。
2021-03-27 09:35:01
这不是反模式,但您通常会等待加载 DOM,然后执行所有 JS 操作。
2021-04-01 09:35:01
对于遇到此答案的任何人,请将此链接放在这里w3schools.com/tags/ev_onload.asp - 当前支持的所有 HTML 元素onload
2021-04-08 09:35:01

您可以使用 onerror 在 IMG 元素上自动触发一些 js,而无需使用 src。

<img src onerror='alert()'>
这是一个肮脏的解决方法......但是嘿,如果它适合......
2021-03-28 09:35:01
杰出的!也可用于从 angular 触发typescript:img src (error)="function()" />
2021-03-31 09:35:01
我可以用吗
2021-04-02 09:35:01
这是一个绝妙的方法。请在此处查看我对您的解决方案的扩展:stackoverflow.com/questions/4057236/...
2021-04-03 09:35:01

onload事件只能在使用document(body)本身,帧,图像和脚本。换句话说,它只能附加到 body 和/或每个外部资源div 不是外部资源,它作为主体的一部分加载,因此该onload事件不适用于那里。

不仅在 body 元素中,您还可以将它用于图像和 iframe 等。w3schools.com/jsref/event_onload.asp
2021-03-31 09:35:01
值得注意的是,内联脚本不是外部资源,因此onload<script>没有srcHTML 属性的情况下不起作用(我试图在内联脚本中使用此建议,但发现它不起作用)
2021-04-02 09:35:01

onload 事件它只支持下面列出的几个标签。

<body>, <frame>, <iframe>, <img>, <input type="image">, <link>, <script>, <style>

这里是onload 事件的参考

试试这个!永远不要在 div 上使用触发器两次!

您可以在 div 标签之前定义要调用的函数。

$(function(){
    $('div[onload]').trigger('onload');
});

演示:jsfiddle

@Trindaz 没错!换句话说,脚本就像 onload 事件。感谢您留下意见!
2021-03-20 09:35:01
@Arif Burhan 我不明白。我确实加载了 JQuery(edge)。你能再查一下吗?即使使用手机,我也可以看到“Hello World”。
2021-03-27 09:35:01
上面的 jsfiddle 没有 jQuery 加载器 - 并且不起作用。
2021-04-01 09:35:01
@Kuofp那个小提琴实际上并没有在加载目标元素时调用处理程序。它只是使用 jquery 搜索具有属性(在您的情况下onload)的元素,然后调用这些函数。如果你改变了属性比其他的东西该脚本甚至onloadjsfiddle.net/mrszgbxh
2021-04-05 09:35:01