diff options
| author | Stephen Blott | 2016-09-26 13:44:16 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2016-09-26 13:44:16 +0100 | 
| commit | afeb65f5af849f04df8380212dbf50a6bf186bc4 (patch) | |
| tree | 34f23beee7923bd2a3014d9c71e0da079a19e875 /content_scripts/link_hints.coffee | |
| parent | 8c1957e600cff896b2a673d7ba8dbcaa132b37e5 (diff) | |
| download | vimium-afeb65f5af849f04df8380212dbf50a6bf186bc4.tar.bz2 | |
Tweak jsaction detection and add tests.
This tweaks the jsaction detection, in particular excluding elements
where the "actionName" is "_".  I see a lot of these, and clicking them
doesn't do anything.
Also, added corresponding tests.
Diffstat (limited to 'content_scripts/link_hints.coffee')
| -rw-r--r-- | content_scripts/link_hints.coffee | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index b4b63b1f..4bfd3ef2 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -670,11 +670,17 @@ LocalHints =        isClickable = true      # Check for jsaction event listeners on the element. -    if element.hasAttribute "jsaction" +    if not isClickable and element.hasAttribute "jsaction"        jsactionRules = element.getAttribute("jsaction").split(";")        for jsactionRule in jsactionRules -        ruleSplit = jsactionRule.split ":" -        isClickable ||= ruleSplit[0] == "click" or (ruleSplit.length == 1 and ruleSplit[0] != "none") +        ruleSplit = jsactionRule.trim().split ":" +        if 1 <= ruleSplit.length <= 2 +          [eventType, namespace, actionName ] = +            if ruleSplit.length == 1 +              ["click", ruleSplit[0].trim().split(".")..., "_"] +            else +              [ruleSplit[0], ruleSplit[1].trim().split(".")..., "_"] +          isClickable ||= eventType == "click" and namespace != "none" and actionName != "_"      # Check for tagNames which are natively clickable.      switch tagName | 
