在已经加载的元素上添加addEventListener('load', func)
Adding addEventListener('load', func) on an already loaded element
我需要检查是否加载了OBJECT标签,在某些边缘情况下,在JavaScript运行之前加载了OBJECT,然后我的函数将永远不会触发。
<object type="image/svg+xml" data="svg/europas-ledande-online-butik.svg">Europas ledande online butik</object>
obj.addEventListener('load', function svgLoad() {..
我如何检查我的对象是否已经加载?我可以做: object onload="store some global variable"
,然后再检查,但那又笨拙又难看。
我不能检查宽度或高度,因为我不知道值(它是通过CMS添加的)
想法?
上面的例子恰好是一个SVG,但它可以是任何带有额外外部数据请求的元素——对象、图像、嵌入等等。
如上所述:ONLOAD
不是我想做的事情(关注点分离-内联事件处理程序对你不利),addEventListener
不能在已经加载的元素上工作。
当然,我希望尽快触发我的svgLoad-function -只要对象准备好显示
我最后是这样做的:
<object class="slide visuallyhidden" onload="this.setAttribute('data-is-loaded', 'true')" type="image/svg+xml" data="svg/europas-ledande-online-butik.svg">Europas ledande online butik</object>
.
onload="this.setAttribute('data-is-loaded', 'true')"
是的,它是一个内联事件处理程序-但在这种情况下,它不会在自己的元素之外做任何事情。这并不理想,但必须这样做。
我可以设置一个类,但我选择不这样做。这种方式更加语义化,而且setAttribute有很好的浏览器支持(至少从DOM Core 1开始就支持IE5了),而且非常高效。
现在唯一的问题是,使用OBJECT元素嵌入的SVG的onload似乎不需要包含链接的背景。这意味着onload可能会在任何链接的背景下载之前被触发。
相关文章:
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- jQuery点击ON现在使用.load触发关闭
- .load()函数赢得't加载javascript
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 使用.load()后在Lightbox中插入谷歌地图
- .load ajax无法正常工作whitin wordpress主题
- 在Debian中运行包含load()和print()函数的JS脚本
- jQuery css可见性在load方法中不起作用
- Mediawiki皮肤创建-Javascript don'Don’t get load
- $(window).load在带有异步js-libs的IE中触发得太快
- 动态潜水高度jQuery.Load()不工作
- jQuery .load with variable as url
- google.maps.event.addDomListener(window, 'load', fun
- Selectboxit Load Time
- jQuery.load()是另一个包含prism.js的页面
- $(window).load()被调用了无数次
- Turbolinks等效于window.load的事件
- Three.js issue creating meshes outside of loader's load(
- 在已经加载的元素上添加addEventListener('load', func)
- element.addEventListener('load', func)和element.onloa