你需要找到responders
你的window
对象的存储,它是由prototype.js通过以下方式分配的(参见prototype.js 1.7,event.js line 774):
function observeStandardEvent(element, eventName, responder) {
var actualEventName = getDOMEventName(eventName);
if (element.addEventListener) {
element.addEventListener(actualEventName, responder, false);
} else {
element.attachEvent('on' + actualEventName, responder);
}
}
所以prototype.js 不会将你responders
的变量存储在某个地方,而只是将它们分配给你的element
——在这种情况下是window
.
遗憾的是,prototype.js 没有 jQuerys 之类的东西click
(正如 isick 所建议的那样)。但是还有很多其他可用的解决方案,您应该查看相关问题“使用 Prototype 触发事件”。
尤其是在 Gregs 的回答中。使用他Element.triggerEvent(window, 'load')
应该做的工作。
另一个(可能甚至更清洁)的解决方案是使用原型Event.fire
Gregs 的回答和明显的Event.fire
都不会完成这项工作window
!
但是balupton在他的问题Binding and triggering native and custom events in Prototype 中有一个定制的解决方案,他发布了一个gist似乎运行良好的问题!
我做了一个(脏)jsfiddle,证明了它的可能性。不过,它有点像一个开端。