From 2bc99a6caa157a818647c4411c307ebc630b1dc3 Mon Sep 17 00:00:00 2001 From: jez Date: Mon, 3 Jan 2011 20:30:15 +0800 Subject: Switch from tagName to nodeName and lowercase it when doing checks. tagName returns 'undefined' for text nodes, so it is less desirable. Non-html documents return nodeName/tagNames in lowercase. --- linkHints.js | 4 ++-- vimiumFrontend.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/linkHints.js b/linkHints.js index 53ad08b7..85348ff9 100644 --- a/linkHints.js +++ b/linkHints.js @@ -253,8 +253,8 @@ var linkHintsBase = { */ isSelectable: function(element) { var selectableTypes = ["search", "text", "password"]; - return (element.tagName == "INPUT" && selectableTypes.indexOf(element.type) >= 0) || - element.tagName == "TEXTAREA"; + return (element.nodeName.toLowerCase() == "input" && selectableTypes.indexOf(element.type) >= 0) || + element.nodeName.toLowerCase() == "textarea"; }, /* diff --git a/vimiumFrontend.js b/vimiumFrontend.js index e5e214f7..f552fc5a 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -508,7 +508,7 @@ function isFocusable(element) { return isEditable(element) || isEmbed(element); * Embedded elements like Flash and quicktime players can obtain focus but cannot be programmatically * unfocused. */ -function isEmbed(element) { return ["EMBED", "OBJECT"].indexOf(element.tagName) > 0; } +function isEmbed(element) { return ["embed", "object"].indexOf(element.nodeName.toLowerCase()) > 0; } /* * Input or text elements are considered focusable and able to receieve their own keyboard events, @@ -521,7 +521,7 @@ function isEditable(target) { if (target.getAttribute("contentEditable") == "true") return true; var focusableInputs = ["input", "textarea", "select", "button"]; - return focusableInputs.indexOf(target.tagName.toLowerCase()) >= 0; + return focusableInputs.indexOf(target.nodeName.toLowerCase()) >= 0; } function enterInsertMode() { -- cgit v1.2.3