0
我正在尋找一個擁有30-40個JavaScript的龐大代碼庫,包括做各種各樣的東西,包括連接事件。如何斷開滾動事件中的所有處理程序?
我期待以編程方式斷開scroll
事件(窗口或文檔)的任何處理程序。最好從F12工具的控制檯選項卡中找到。
這是可能的JavaScript?
我正在尋找一個擁有30-40個JavaScript的龐大代碼庫,包括做各種各樣的東西,包括連接事件。如何斷開滾動事件中的所有處理程序?
我期待以編程方式斷開scroll
事件(窗口或文檔)的任何處理程序。最好從F12工具的控制檯選項卡中找到。
這是可能的JavaScript?
您可能已經發現您不能使用removeEventListener
,因爲您需要知道哪個函數是要分離的事件處理程序。
但是你可以創建一個圍繞addEventListener
的包裝,所以當它被調用時,你不會將它翻譯成真正的addEventListener
方法的調用。
你會把這個script
元素在head
部分,之前任何script
代碼中包含的庫:
<script>
window.origAddEventListener = window.addEventListener;
window.addEventListener = function (type, f, options) {
if (type === "scroll") return; // do not add the listener
window.origAddEventListener(type, f, options);
};
</script>
你可以做document.addEventListener
類似的東西。
這樣你防止事件處理程序被註冊爲window
(或document
)元素的scroll
事件。