首页 > 解决方案 > 我可以让 window.postrender = function 再次运行 window.onload = function 吗?

问题描述

所以我制作了包含在某种播放器中的页面。每隔 10-45 秒,播放器就会运行一个 postrender 函数,该函数会在我的页面之外调用一堆函数,但我可以添加其他函数来调用。所以我的问题是,当播放器调用 postrender 时,我的 onload 函数也会触发,因此我的页面将重置回起始位置,我该如何做到这一点?这样在循环中每次都是新鲜的,来自前一个人的任何交互都会消失。

这是代码现在看起来的示例。

window.postrender = function() {
//: I can put any additional functions in here
$('#splash').removeClass('hidden');
};

window.onload = function initial() {
//: All of my default starting code
};

标签: javascriptonload

解决方案


由于您想在两个地方执行相同的操作集,只需重构该部分即可:

function initialize() {
    // common initialization code
}

function postRender() {
    initialize();

    // more code specific to postRender
    $('#splash').removeClass('hidden');
}

window.addEventListener("load", initialize);

推荐阅读