【问题标题】:issue with multiple window onload多窗口加载问题
【发布时间】:2017-11-23 01:18:37
【问题描述】:

我很幸运地在网上找到了这段代码,用于完全从不同主题的连续加载上

function myPluginLoadEvent(func) {
        // assign any pre-defined functions on 'window.onload' to a variable
        var oldOnLoad = window.onload;
        // if there is not any function hooked to it
        if (typeof window.onload != 'function') {
            // you can hook your function with it
            window.onload = func
        } else { // someone already hooked a function
            window.onload = function () {
                // call the function hooked already
                oldOnLoad();
                // call your awesome function
                func();
            }
        }
    }

    // pass the function you want to call at 'window.onload', in the function defined above
    myPluginLoadEvent(func);

但是,这只允许一次加载 onload 调用。如何为多个加载调用循环这个,例如 for i, 1++ ? 非常感谢。

【问题讨论】:

  • 您的意思是在窗口加载时运行多个函数?
  • 在滚动并使用 YoutubeAPIIframeReady 加载更多数据后不只是一次又一次!

标签: javascript


【解决方案1】:

您发布的代码将重复工作。每次调用时,oldOnLoad 都包含之前分配给window.onload 的任何内容,这可能是之前使用的结果。所以它只是保持链接所有的功能。

但是,现代方法是使用addEventListener,而不是分配给window.onload

window.addEventListener("load", func);

【讨论】:

  • 真的吗? .滚动 YoutubeAPIIframe iframe div 后,我正在使用此函数重新加载窗口加载。 APIIframeElement 似乎只加载一次,之后不再加载。请问我做错了什么?
  • 当您重新加载窗口时,一切都会重新开始。我说的是在同一个脚本执行中多次使用该函数。
  • 感谢 Barmar 看我的帖子。那么有没有一种可能的方法来在每次加载新数据后更新 onload 函数。使用上面的代码,我知道它是如何更新的,但只有一次!请看我的另一篇文章,看看我的意思。 stackoverflow.com/questions/47425997/youtube-on-scroll
  • 我不确定我是否理解您的问题。当您重新加载页面时,所有 Javascript 将再次运行。因此,只需将您想要的内容放入常规 Javascript 中。如果需要在重新加载之间记住数据,可以使用localStoragesessionStorage
  • 是的,有一半的时间我也不确定自己在做什么:-(。但是,这是我编码的另一个问题的一部分。现在我什至不必在所有。我会再次阅读代码并尝试吸收它。感谢您在过去几天的评论和回复。这里有一个很棒的支持社区。再次感谢大家。
猜你喜欢
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多