Javascript:选择窗口加载功能

Javascript: Select window onload function

本文关键字:加载 功能 窗口 选择 Javascript      更新时间:2023-09-26

我继承的遗留 html 有许多类型的 js 调用

Event.observe(window, 'load', function() {
    // Various snippets of code 
});

我希望能够在页面加载后根据用户与页面的交互触发所有已链接到窗口加载事件的函数。理想情况下,我会做类似的事情

window_on_load_function = window.someCommandHere();
window_on_load_function();

有什么办法可以做到这一点吗?我可以使用JQuery,但没有JQuery的解决方案也将不胜感激。

我可能误解了你的问题。您不能将函数调用绑定到您引用的特定用户交互吗?

IE:如果交互是他们单击一个按钮,则将其绑定到该元素的onclick。在jQuery中将是

$('#ELEMENTID').click(window_on_load_function);
您需要

按以下方式查找由 prototype 分配的window对象的存储responders.js(请参阅 prototype.js 1.7,event.js第 774 行):

function observeStandardEvent(element, eventName, responder) {
    var actualEventName = getDOMEventName(eventName);
    if (element.addEventListener) {
      element.addEventListener(actualEventName, responder, false);
    } else {
      element.attachEvent('on' + actualEventName, responder);
    }
}

所以原型.js不是将你的responders存储在某个变量上,而只是将它们分配给你的element - 在这种情况下是window

可悲的是.js原型没有jQuerys click这样的东西(正如isick所建议的那样)。但是还有很多其他可用的解决方案,您应该查看相关问题"使用原型触发事件"。

尤其是在格雷格斯的回答上。使用他的Element.triggerEvent(window, 'load')应该可以完成这项工作。另一个(可能更干净)的解决方案是使用原型Event.fire
格雷格斯的回答和显而易见的Event.fire都不会在window上完成这项工作!

但是,Balupton有一个定制的解决方案,关于他的问题绑定和触发原型中的本机和自定义事件,他发布了一个要点,似乎运行良好!

我做了一个(肮脏的)jsfiddle,这证明了它的可能性。不过,这是一个开始。