gpt4 book ai didi

javascript - 如何在 JavaScript 中附加窗口调整大小事件监听器?

转载 作者:行者123 更新时间:2023-12-02 23:57:16 26 4
gpt4 key购买 nike

我正在制作一个用于分发的 JS/PHP 插件。我希望它像这样易于安装:

<HTML>
<HEAD>
<TITLE>Testing my Plugin</TITLE>
<?php
include 'path/to/myPlugin.php';
echo getMyPluginHeadContent();
?>
</HEAD>
<BODY>
<?php
echo getMyPluginContent("Arguments will go here");
?>
</BODY>
</HTML>

但是,我希望此插件附加一个窗口调整大小监听器而不覆盖 window.onresize ,以防有任何其他脚本也需要使用该方法。 有没有像document.addEventListener("resize", myResizeMethod, true);这样的javascript命令?我知道不是这样的,因为那不起作用,而且 MDN 和 W3C 对于什么参数非常模糊 addEventListener需要。

我不想要答案告诉我使用 window.onresize = myResizeMethod<BODY ONRESIZE="myResizeMethod"> ,因为这些插件不太友好。

最佳答案

由于您尝试在调整窗口大小时调用此函数,因此您需要将该函数绑定(bind)到窗口而不是文档。要支持 IE 9 以下的版本,您需要使用 attachEvent。请注意,attachEvent 要求您指定 on 关键字。这是一个例子:

if(window.attachEvent) {
window.attachEvent('onresize', function() {
alert('attachEvent - resize');
});
}
else if(window.addEventListener) {
window.addEventListener('resize', function() {
console.log('addEventListener - resize');
}, true);
}
else {
//The browser does not support Javascript event binding
}

同样,您可以用相同的方式删除事件。使用 removeEventListener 时,请确保传递与调用 addEventListener 时相同的 useCapture 值。这是第三个参数,即 true/false 值。

if(window.detachEvent) {
window.detachEvent('onresize', theFunction);
}
else if(window.removeEventListener) {
window.removeEventListener('resize', theFunction, true);
}
else {
//The browser does not support Javascript event binding
}

关于javascript - 如何在 JavaScript 中附加窗口调整大小事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13651274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com