@@ -5,40 +5,42 @@ function formatCrateName(crateTitleAndVersion) {
5
5
6
6
( function ( ) {
7
7
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 ;
10
11
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
+ }
33
16
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 ) ;
37
40
}
38
- resetClipboardTimeout = setTimeout ( resetClipboard , 1000 ) ;
39
- }
40
41
41
- if ( clipboard != null ) clipboard . addEventListener ( "click" , copyTextHandler ) ;
42
+ clipboard . addEventListener ( "click" , copyTextHandler ) ;
43
+ }
42
44
for ( const e of document . querySelectorAll ( 'a[data-fragment="retain"]' ) ) {
43
45
e . addEventListener ( 'mouseover' , ( ) => e . hash = document . location . hash ) ;
44
46
}
0 commit comments