window.onload有时只能工作,而alert()使其可以工作

这与我最近发布的一个问题有关,因此很抱歉再次提出问题,但是我无法解决这个问题。我真的很想了解并了解它,因为我只是在学习javascript / html。

我正在使用 SVGInject 将svg加载到html中,然后将鼠标悬停在svg元素上时使用 Tippy.js 来获取工具提示。

使用window.onload有时可以,但并非总是如此。错误是:

Uncaught TypeError: Cannot read property 'addEventListener' of null

重新加载页面会导致错误消失并再次出现。

我将alert()放入onload只是为了查看发生了什么,并且有了警报,错误消失了,一切正常。我很困惑。

window.onload = function (){
   //alert("test"); //why does this alert make everything work??
   /* SVG HIGHLIGHTS */
   svg_highlight('ebk_abp','abk_ab');
   svg_highlight('ebk_pbp','pbk_ab');

   /* SVG TOOLTIPS */ 
   svg_tooltip('ebk',"Eröffnungsbilanzkonto");
};

我意识到这与未按正确顺序加载内容有关,我只是不了解如何解决此问题以及为什么alert()修复了所有问题。

我不确定是否允许发布此内容,但这是我的完整项目,因此您可以自己看看:

https://github.com/rackuzi/DieAbbildung | https://rackuzi.github.io/DieAbbildung/

santong126 回答:window.onload有时只能工作,而alert()使其可以工作

svg元素尚不存在,因此您需要确保通过使用回调以正确的顺序执行代码。

您需要将代码添加到svg注入的afterLoad属性中。请参阅此页面上afterLoad的文档。 https://github.com/iconfu/svg-inject

本文链接:https://www.f2er.com/3156768.html

大家都在问