How to remove event listener in Chrome extension
event-handling, events, google-chrome-extension, javascript
Solution
`removeListener` takes an argument. You need to name the listener function and then remove it by name:
function doStuff(request){
chrome.extension.onRequest.removeListener(doStuff);
other_function(request);
}
chrome.extension.onRequest.addListener(doStuff);
Or, more succinctly:
chrome.extension.onRequest.addListener(
function doStuff(request){
chrome.extension.onRequest.removeListener(doStuff);
other_function(request);
}
);
Problem
I am trying to remove the `onRequest` listener added by `chrome.extension.onRequest.addListener` after a request is made, like this: ``` chrome.extension.onRequest.addListener( function(request){ chrome.extension.onRequest.removeListener(); other_function(request); } ); ``` The problem is that I don't know if this works or not. I tried `chrome.extension.onRequest.hasListener`, which seems not to give the right answer, so I am wondering if there are some other ways to remove the `onRequest` listener or check if the listener exists or not. Thanks!