OneErrorJavaScript只加载一次?

OneErrorJavaScript只加载一次?,javascript,html,onerror,Javascript,Html,Onerror,我一直在试图找出按我的选择加载屏幕开/关的方法(不是自动事件)。 所以我提出了这个解决方案: css: javascript: function loading(action) { console.log(action); document.getElementById('loading').style.display = action ? 'block' : 'none'; } html: //做我需要的任何事情,这需要几秒钟来加载 加载屏幕按设想显示,没有任何问题,但是

我一直在试图找出按我的选择加载屏幕开/关的方法(不是自动事件)。 所以我提出了这个解决方案:

css:

javascript:

function loading(action) {
    console.log(action);
    document.getElementById('loading').style.display = action ? 'block' : 'none';
}
html:


//做我需要的任何事情,这需要几秒钟来加载
加载屏幕按设想显示,没有任何问题,但是有两件事我不清楚

  • 控制台.log(操作)不工作。。。它只是不会打印任何东西到控制台
  • 第二个图像无法关闭加载屏幕。。。它只是一直开着

  • 我做错了什么?

    根据@Aioros的回答,这部分是正确的。。。 在将src添加到两个标记之后,它尝试触发javascript函数,但是我得到了一个错误:加载不是一个对我没有意义的函数

    因此,我替换了:

    <img src=blabla onerror="loading(true/false)">
    
    
    
    与:

    加载(真/假)
    

    现在它工作得很好…

    我不确定您预期会发生什么,但是
    onerror
    处理程序只有在加载图像出错时才会被
    img
    元素调用。确切地说,这是一个老把戏,如何触发任何javascipt调用:)因此,正如您所看到的,img中没有src,因此,我可以触发onerror事件,该事件将调用我的javascript函数来拍摄/隐藏加载屏幕。。。显示效果很好,隐藏效果不太好:(我认为不会。你的
    #loading
    div在开始时就已经可见(
    display:block;
    ),
    onerror
    根本不会被调用。如果你有一个假的
    src
    属性,它就会被调用。
    <div id=loading></div>
    <img onerror="loading(true)">
    // do whatever i need, which takes several seconds to load
    <img onerror="loading(false)">
    
    <img src=blabla onerror="loading(true/false)">
    
    <script>loading(true/false)</script>