事情是这样的,我在我的openSeadragon项目中添加了“Annotorious”。http://annotorious.github.io/demos/openseadragon-preview.html要启动此插件,请选择以下选项。
<script>
function init() {
anno.makeAnnotatable(document.getElementById('myImage'));
}
</script>
...
<body onload="init();">
<img src="example.jpg" id="myImage" />
</body>
这就是问题所在,我用它们来延迟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查看器中,它就不能工作了。
这两者之间有冲突吗?如果是这样,如何解决?
发布于 2016-03-28 17:20:55
我认为这应该会有帮助:
<script type="text/javascript">
var htmlOnLoad = window.onload;
window.onload = function(e){htmlOnLoad(e); downloadJSAtOnload(e)};
</script>其思想是将处理程序与HTML绑定,并同时调用这两个处理程序: html-和js-处理程序。
发布于 2016-03-28 18:41:54
Onload行为是这样的:(可能取决于浏览器类型-行为可能会改变-我在chrome上工作过)
发布于 2016-03-28 18:45:58
当load事件触发时,您正在尝试做两件事:
加载
init (依次调用并加载使JavaScript可用的anno.makeAnnotatable 在函数存在之前,您不能调用它。您必须延迟对init的调用,直到downloadJSAtOnload触发的JS加载完成。(具体细节取决于downloadJSAtOnload的工作方式)。
https://stackoverflow.com/questions/36259068
复制相似问题