首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML的"onload()“是否与加载javascript的延迟冲突?

HTML的"onload()“是否与加载javascript的延迟冲突?
EN

Stack Overflow用户
提问于 2016-03-28 16:58:51
回答 3查看 505关注 0票数 0

事情是这样的,我在我的openSeadragon项目中添加了“Annotorious”。http://annotorious.github.io/demos/openseadragon-preview.html要启动此插件,请选择以下选项。

代码语言:javascript
复制
<script>
  function init() {
    anno.makeAnnotatable(document.getElementById('myImage'));
  }
</script>
...
<body onload="init();">
  <img src="example.jpg" id="myImage" />
</body>

这就是问题所在,我用它们来延迟javascript在查看器块上的加载。

代码语言:javascript
复制
<script type="text/javascript">
 if (window.addEventListener)
        window.addEventListener("load", downloadJSAtOnload, false);
    else if (window.attachEvent)
        window.attachEvent("onload", downloadJSAtOnload);
    else window.onload = downloadJSAtOnload;
</script>

一旦我将onload="init();“添加到我的code.the查看器中,它就不能工作了。

这两者之间有冲突吗?如果是这样,如何解决?

EN

回答 3

Stack Overflow用户

发布于 2016-03-28 17:20:55

我认为这应该会有帮助:

代码语言:javascript
复制
<script type="text/javascript">
 var htmlOnLoad = window.onload;
 window.onload = function(e){htmlOnLoad(e); downloadJSAtOnload(e)};
</script>

其思想是将处理程序与HTML绑定,并同时调用这两个处理程序: html-和js-处理程序。

票数 0
EN

Stack Overflow用户

发布于 2016-03-28 18:41:54

Onload行为是这样的:(可能取决于浏览器类型-行为可能会改变-我在chrome上工作过)

  1. 如果你设置body onload="_fn“,它将在页面加载上工作如果你在页面脚本上添加window.onload=_fn (在body标签之前),它们将加载(2然后1)
  2. 如果你将window.onload添加到HTML的最底部区域。它将是唯一一个在页面加载时执行的脚本。(body“override)
  3. Adding”将作为事件监听器加载到窗口中-您可以根据需要添加任意数量的内容,它们将按顺序分别加载。
票数 0
EN

Stack Overflow用户

发布于 2016-03-28 18:45:58

当load事件触发时,您正在尝试做两件事:

加载

  • 调用init (依次调用并加载使JavaScript可用的anno.makeAnnotatable

在函数存在之前,您不能调用它。您必须延迟对init的调用,直到downloadJSAtOnload触发的JS加载完成。(具体细节取决于downloadJSAtOnload的工作方式)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36259068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档