Skip to content

Commit 8358d01

Browse files
Merge pull request #1447 from GuillaumeGomez/js-errors
Fix JS errors
2 parents 5acd5ef + d0422bb commit 8358d01

File tree

2 files changed

+36
-31
lines changed

2 files changed

+36
-31
lines changed

static/index.js

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,42 @@ function formatCrateName(crateTitleAndVersion) {
55

66
(function() {
77
const clipboard = document.getElementById("clipboard");
8-
let resetClipboardTimeout = null;
9-
let resetClipboardIcon = clipboard.innerHTML;
8+
if (clipboard) {
9+
let resetClipboardTimeout = null;
10+
let resetClipboardIcon = clipboard.innerHTML;
1011

11-
function resetClipboard() {
12-
resetClipboardTimeout = null;
13-
clipboard.innerHTML = resetClipboardIcon;
14-
}
15-
16-
function copyTextHandler() {
17-
const crateTitleAndVersion = document.getElementById("crate-title");
18-
// On rustdoc pages, we use `textTransform: uppercase`, which copies as uppercase.
19-
// To avoid that, reset the styles temporarily.
20-
const oldTransform = crateTitleAndVersion.style.textTransform;
21-
crateTitleAndVersion.style.textTransform = "none";
22-
const temporaryInput = document.createElement("input");
23-
24-
temporaryInput.type = "text";
25-
temporaryInput.value = formatCrateName(crateTitleAndVersion.innerText);
26-
27-
document.body.append(temporaryInput);
28-
temporaryInput.select();
29-
document.execCommand("copy");
30-
31-
temporaryInput.remove();
32-
crateTitleAndVersion.style.textTransform = oldTransform;
12+
function resetClipboard() {
13+
resetClipboardTimeout = null;
14+
clipboard.innerHTML = resetClipboardIcon;
15+
}
3316

34-
clipboard.textContent = "✓";
35-
if (resetClipboardTimeout !== null) {
36-
clearTimeout(resetClipboardTimeout);
17+
function copyTextHandler() {
18+
const crateTitleAndVersion = document.getElementById("crate-title");
19+
// On rustdoc pages, we use `textTransform: uppercase`, which copies as uppercase.
20+
// To avoid that, reset the styles temporarily.
21+
const oldTransform = crateTitleAndVersion.style.textTransform;
22+
crateTitleAndVersion.style.textTransform = "none";
23+
const temporaryInput = document.createElement("input");
24+
25+
temporaryInput.type = "text";
26+
temporaryInput.value = formatCrateName(crateTitleAndVersion.innerText);
27+
28+
document.body.append(temporaryInput);
29+
temporaryInput.select();
30+
document.execCommand("copy");
31+
32+
temporaryInput.remove();
33+
crateTitleAndVersion.style.textTransform = oldTransform;
34+
35+
clipboard.textContent = "✓";
36+
if (resetClipboardTimeout !== null) {
37+
clearTimeout(resetClipboardTimeout);
38+
}
39+
resetClipboardTimeout = setTimeout(resetClipboard, 1000);
3740
}
38-
resetClipboardTimeout = setTimeout(resetClipboard, 1000);
39-
}
4041

41-
if (clipboard != null) clipboard.addEventListener("click", copyTextHandler);
42+
clipboard.addEventListener("click", copyTextHandler);
43+
}
4244
for (const e of document.querySelectorAll('a[data-fragment="retain"]')) {
4345
e.addEventListener('mouseover', () => e.hash = document.location.hash);
4446
}

static/keyboard.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@
4040
case "s":
4141
case "S":
4242
ev.preventDefault();
43-
document.getElementsByClassName("search-input-nav")[0].focus();
43+
var searchInputNav = document.getElementsByClassName("search-input-nav");
44+
if (searchInputNav.length > 0) {
45+
searchInputNav[0].focus();
46+
}
4447
break;
4548
}
4649
}

0 commit comments

Comments
 (0)