Commit MetaInfo

Revision6d89ff3537c66f4ee4f37ed0256302ef781f04df (tree)
Zeit2017-09-25 04:57:08
Autorumorigu <umorigu@gmai...>
Commiterumorigu

Log Message

search2: Highlight search text for Firefox (auto encodeURIComponent)

Ändern Zusammenfassung

Diff

--- a/skin/search2.js
+++ b/skin/search2.js
@@ -136,7 +136,8 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
136136 results.forEach(function(val, index) {
137137 var fragment = document.createDocumentFragment();
138138 var li = document.createElement('li');
139- var href = val.url + '#q=' + encodeSearchTextForHash(searchText);
139+ var hash = '#q=' + encodeSearchTextForHash(searchText);
140+ var href = val.url + hash;
140141 var decoratedName = findAndDecorateText(val.name, searchRegex);
141142 if (! decoratedName) {
142143 decoratedName = escapeHTML(val.name);
@@ -151,6 +152,13 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
151152 var liHtml = '<a href="' + escapeHTML(href) + '">' + decoratedName + '</a> ' +
152153 getPassage(now, updatedAt);
153154 li.innerHTML = liHtml;
155+ var a = li.querySelector('a');
156+ if (a && a.hash) {
157+ if (a.hash !== hash) {
158+ // Some browser execute encodeHTML(hash) automatically. Support them.
159+ a.href = val.url + '#encq=' + encodeSearchTextForHash(searchText);
160+ }
161+ }
154162 fragment.appendChild(li);
155163 var div = document.createElement('div');
156164 div.classList.add('search-result-detail');
@@ -501,9 +509,12 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
501509 function getSearchTextInLocationHash() {
502510 // TODO Cross browser
503511 var hash = location.hash;
512+ if (!hash) return '';
504513 var q = '';
505514 if (hash.substr(0, 3) === '#q=') {
506515 q = hash.substr(3).replace(/\+/g, ' ');
516+ } else if (hash.substr(0, 6) === '#encq=') {
517+ q = decodeURIComponent(hash.substr(6).replace(/\+/g, ' '));
507518 }
508519 return q;
509520 }
Show on old repository browser