Skip to content

Commit 1cd1fc9

Browse files
committed
refactor(defaultTheme): refine focusChildOnNavUp()
1 parent bf1a108 commit 1cd1fc9

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/tpl/defaultTheme/frontend/index.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@
182182
var sepIndex = url.indexOf('?');
183183
if (sepIndex < 0) sepIndex = url.indexOf('#');
184184
if (sepIndex >= 0) {
185-
url = url.substring(0, sepIndex);
185+
url = url.slice(0, sepIndex);
186186
}
187187
return url;
188188
}
@@ -194,35 +194,37 @@
194194
var currUrl = extractCleanUrl(location.href);
195195

196196
if (prevUrl.length <= currUrl.length) return;
197-
if (prevUrl.substring(0, currUrl.length) !== currUrl) return;
198-
var goesUp = prevUrl.substring(currUrl.length);
197+
if (prevUrl.slice(0, currUrl.length) !== currUrl) return;
198+
var goesUp = prevUrl.slice(currUrl.length);
199199
if (currUrl[currUrl.length - 1] !== '/' && goesUp[0] !== '/') return;
200200
var matchInfo = /[^/]+/.exec(goesUp);
201201
if (!matchInfo) return;
202202
var prevChildName = matchInfo[0];
203203
if (!prevChildName) return;
204204
prevChildName = decodeURIComponent(prevChildName);
205+
if (!matchFilter(prevChildName)) return;
205206

206-
var items = document.body.querySelectorAll(selectorItem);
207+
var items = document.body.querySelectorAll(selectorItemList + '>' + selectorItemNotNone);
207208
items = Array.prototype.slice.call(items);
208209
var selectorName = '.field.name';
209210
var selectorLink = 'a';
210211
for (var i = 0, len = items.length; i < len; i++) {
211212
var item = items[i];
212213
var elName = item.querySelector(selectorName);
213214
if (!elName) continue;
215+
214216
var text = elName.textContent;
215217
if (text[text.length - 1] === '/') {
216-
text = text.substring(0, text.length - 1);
218+
text = text.slice(0, -1);
217219
}
218220
if (text !== prevChildName) continue;
221+
219222
var elLink = item.querySelector(selectorLink);
220-
if (elLink) {
221-
lastFocused = elLink;
222-
elLink.focus();
223-
elLink.scrollIntoView({block: 'center'});
224-
}
225-
break;
223+
if (!elLink) break;
224+
225+
lastFocused = elLink;
226+
elLink.focus();
227+
elLink.scrollIntoView({block: 'center'});
226228
}
227229
}
228230

0 commit comments

Comments
 (0)