diff options
Diffstat (limited to 'forcefocuscontent.js')
-rw-r--r-- | forcefocuscontent.js | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/forcefocuscontent.js b/forcefocuscontent.js index e8a5d3e..7c97029 100644 --- a/forcefocuscontent.js +++ b/forcefocuscontent.js @@ -11,16 +11,39 @@ var PLUGIN_INFO = </VimperatorPlugin>; //}}} +if (__context__.__addedEventListener) + getBrowser().removeEventListener("load", __context__.__addedEventListener, true); + getBrowser().addEventListener("load", onPageLoad, true); + function onPageLoad(event) { + try { let doc = event.originalTarget; if (doc != getBrowser().contentDocument) return; - setTimeout(function () { - let focused = document.commandDispatcher.focusedElement; - if (focused) - focused.blur(); - }, 100); + + let eproto = doc.defaultView.wrappedJSObject.HTMLInputElement.prototype; + let original = eproto.focus; + + let ignore = function () { return void 0; }; + let remove = function () { + liberator.log('removed'); + eproto.focus = original; + if (handle) + clearTimeout(handle); + }; + + doc.defaultView.wrappedJSObject.HTMLInputElement.prototype.focus = ignore; + + //let handle = setTimeout(remove, 5000); + + liberator.log('injected'); + } catch (e) { + liberator.log(e); + } } + +__context__.__addedEventListener = onPageLoad; + // vim: fdm=marker sw=4 ts=4 et: |