diff options
| -rw-r--r-- | content_scripts/link_hints.coffee | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 15af15c5..770a4639 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -166,12 +166,25 @@ class LinkHintsMode      if (element.getAttribute("aria-hidden")?.toLowerCase() in ["", "true"] or          element.getAttribute("aria-disabled")?.toLowerCase() in ["", "true"])        return [] # This element should never have a link hint. +       +      # checks for every valid version of ng-click +      ngPrefixes = ['', 'data-', 'x-'] +      ngSeparators = ['-', ':', '_'] +      ng = 'ng' +      click = 'click' +      hasNgClick: (element) -> +        for prefix in ngPrefixes +          for separator in ngSeparators +            attr = prefix + ng + separator + click +            if element.attributes.hasOwnProperty(attr) +              return true      # Check for attributes that make an element clickable regardless of its tagName.      if (element.hasAttribute("onclick") or          element.getAttribute("role")?.toLowerCase() in ["button", "link"] or          element.getAttribute("class")?.toLowerCase().indexOf("button") >= 0 or -        element.getAttribute("contentEditable")?.toLowerCase() in ["", "contentEditable", "true"]) +        element.getAttribute("contentEditable")?.toLowerCase() in ["", "contentEditable", "true"]) or +        hasNgClick element        isClickable = true      # Check for jsaction event listeners on the element. | 
