diff options
| author | Stephen Blott | 2017-11-25 11:34:44 +0000 | 
|---|---|---|
| committer | GitHub | 2017-11-25 11:34:44 +0000 | 
| commit | 0ecf8c01b873d08d7f477a7d32ca2d55fefc74c4 (patch) | |
| tree | f9fb2be492d43ce0794035f3c15937eda7dbf220 | |
| parent | 61bae6c7daa371d1a3b7146d46b120775d888b7c (diff) | |
| parent | a946edb5294fab414d5c2afa218e9f9e889394ce (diff) | |
| download | vimium-0ecf8c01b873d08d7f477a7d32ca2d55fefc74c4.tar.bz2 | |
Merge pull request #2783 from mrmr1993/use-HTML5-labels
Use HTML labels accessor to get link hint labels for input elements
| -rw-r--r-- | content_scripts/link_hints.coffee | 26 | 
1 files changed, 7 insertions, 19 deletions
| diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index d4a95d36..6be163ef 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -807,25 +807,10 @@ LocalHints =        hint.rect.left += left      if Settings.get "filterLinkHints" -      @withLabelMap (labelMap) => -        extend hint, @generateLinkText labelMap, hint for hint in localHints +      extend hint, @generateLinkText hint for hint in localHints      localHints -  # Generate a map of input element => label text, call a callback with it. -  withLabelMap: (callback) -> -    labelMap = {} -    labels = document.querySelectorAll "label" -    for label in labels -      forElement = label.getAttribute "for" -      if forElement -        labelText = label.textContent.trim() -        # Remove trailing ":" commonly found in labels. -        if labelText[labelText.length-1] == ":" -          labelText = labelText.substr 0, labelText.length-1 -        labelMap[forElement] = labelText -    callback labelMap - -  generateLinkText: (labelMap, hint) -> +  generateLinkText: (hint) ->      element = hint.element      linkText = ""      showLinkText = false @@ -833,8 +818,11 @@ LocalHints =      nodeName = element.nodeName.toLowerCase()      if nodeName == "input" -      if labelMap[element.id] -        linkText = labelMap[element.id] +      if element.labels?.length > 0 +        linkText = element.labels[0].textContent.trim() +        # Remove trailing ":" commonly found in labels. +        if linkText[linkText.length-1] == ":" +          linkText = linkText.substr 0, linkText.length-1          showLinkText = true        else if element.getAttribute("type")?.toLowerCase() == "file"          linkText = "Choose File" | 
