diff options
| author | Jez Ng | 2012-01-22 05:18:16 +0800 | 
|---|---|---|
| committer | Jez Ng | 2012-01-22 00:35:46 -0500 | 
| commit | f1e92dfe796eb487c9cec41038d8ad7bd99242db (patch) | |
| tree | 1d31893231daaeed576e12ab50842c46a17c0790 /linkHints.js | |
| parent | c227184d57f097f861123e7ebccc28815f9b8943 (diff) | |
| download | vimium-f1e92dfe796eb487c9cec41038d8ad7bd99242db.tar.bz2 | |
Optimize hint generation.
Use createElement() instead of directly manipulating innerHTML.
Diffstat (limited to 'linkHints.js')
| -rw-r--r-- | linkHints.js | 20 | 
1 files changed, 12 insertions, 8 deletions
| diff --git a/linkHints.js b/linkHints.js index e72c3f7f..53a31f2b 100644 --- a/linkHints.js +++ b/linkHints.js @@ -319,7 +319,7 @@ var alphabetHints = {      for (var i = 0, count = visibleElements.length; i < count; i++) {        var marker = hintUtils.createMarkerFor(visibleElements[i]);        marker.hintString = hintStrings[i]; -      marker.innerHTML = hintUtils.spanWrap(marker.hintString.toUpperCase()); +      hintUtils.spanWrap(marker, marker.hintString.toUpperCase());        hintMarkers.push(marker);      } @@ -471,8 +471,7 @@ var filterHints = {    },    renderMarker: function(marker) { -    marker.innerHTML = hintUtils.spanWrap(marker.hintString + -                                          (marker.showLinkText ? ": " + marker.linkText : "")); +    hintUtils.spanWrap(marker, marker.hintString + (marker.showLinkText ? ": " + marker.linkText : ""));    },    getHintMarkers: function(visibleElements) { @@ -574,11 +573,16 @@ var hintUtils = {    /*     * Make each hint character a span, so that we can highlight the typed characters as you type them.     */ -  spanWrap: function(hintString) { -    var innerHTML = []; -    for (var i = 0; i < hintString.length; i++) -      innerHTML.push("<span class='vimiumReset'>" + hintString[i] + "</span>"); -    return innerHTML.join(""); +  spanWrap: function(marker, hintString) { +    while (marker.childNodes.length > 0) +      marker.removeChild(marker.lastChild); + +    for (var i = 0; i < hintString.length; i++) { +      var span = document.createElement("span"); +      span.className = "vimiumReset"; +      span.textContent = hintString[i]; +      marker.appendChild(span); +    }    },    /* | 
