fix: ensure code exists inside pre before adding clipboard
This commit is contained in:
		
							parent
							
								
									ca17af4ae2
								
							
						
					
					
						commit
						7b7064ad2b
					
				| @ -7,25 +7,27 @@ document.addEventListener("nav", () => { | ||||
|   const els = document.getElementsByTagName("pre") | ||||
|   for (let i = 0; i < els.length; i++) { | ||||
|     const codeBlock = els[i].getElementsByTagName("code")[0] | ||||
|     const source = codeBlock.innerText.replace(/\n\n/g, "\n") | ||||
|     const button = document.createElement("button") | ||||
|     button.className = "clipboard-button" | ||||
|     button.type = "button" | ||||
|     button.innerHTML = svgCopy | ||||
|     button.ariaLabel = "Copy source" | ||||
|     button.addEventListener("click", () => { | ||||
|       navigator.clipboard.writeText(source).then( | ||||
|         () => { | ||||
|           button.blur() | ||||
|           button.innerHTML = svgCheck | ||||
|           setTimeout(() => { | ||||
|             button.innerHTML = svgCopy | ||||
|             button.style.borderColor = "" | ||||
|           }, 2000) | ||||
|         }, | ||||
|         (error) => console.error(error), | ||||
|       ) | ||||
|     }) | ||||
|     els[i].prepend(button) | ||||
|     if (codeBlock) { | ||||
|       const source = codeBlock.innerText.replace(/\n\n/g, "\n") | ||||
|       const button = document.createElement("button") | ||||
|       button.className = "clipboard-button" | ||||
|       button.type = "button" | ||||
|       button.innerHTML = svgCopy | ||||
|       button.ariaLabel = "Copy source" | ||||
|       button.addEventListener("click", () => { | ||||
|         navigator.clipboard.writeText(source).then( | ||||
|           () => { | ||||
|             button.blur() | ||||
|             button.innerHTML = svgCheck | ||||
|             setTimeout(() => { | ||||
|               button.innerHTML = svgCopy | ||||
|               button.style.borderColor = "" | ||||
|             }, 2000) | ||||
|           }, | ||||
|           (error) => console.error(error), | ||||
|         ) | ||||
|       }) | ||||
|       els[i].prepend(button) | ||||
|     } | ||||
|   } | ||||
| }) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user