aboutsummaryrefslogtreecommitdiffstats
path: root/forcefocuscontent.js
diff options
context:
space:
mode:
Diffstat (limited to 'forcefocuscontent.js')
-rw-r--r--forcefocuscontent.js33
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: