// static/js/confirm_external_links.js // This script is designed to handle external links on a webpage by showing a confirmation modal // before allowing the user to navigate to the external URL. // Wait for the DOM content to be fully loaded before executing the script. document.addEventListener("DOMContentLoaded", function () { // Select all anchor elements with 'href' attributes starting with 'http' that do not contain // the current window's host domain. var externalLinks = document.querySelectorAll("a[href^='http']:not([href*='" + window.location.host + "'])"); // Loop through each external link found on the page. for (var i = 0; i < externalLinks.length; i++) { // Attach a click event listener to each external link. externalLinks[i].addEventListener("click", function (event) { event.preventDefault(); // Prevent the default behavior of clicking a link. // Create a Bootstrap modal instance for the external link confirmation. var confirmationModal = new bootstrap.Modal(document.getElementById('externalLinkConfirmationModal'), { keyboard: false // Disable closing the modal with the keyboard. }); // Get references to elements within the modal. var externalLink = document.getElementById('externalLink'); var externalLinkShow = document.getElementById('externalLinkShow'); var originalLink = this.href; // Get the original URL of the clicked external link. // Set the 'href' attribute of the element that will open the link. externalLink.setAttribute('href', originalLink); // Update the content of an element to display the external link's URL. externalLinkShow.innerText = "URL: " + this.href; // Show the confirmation modal. confirmationModal.show(); // Attach a click event listener to the 'externalLink' element to hide the modal when clicked. externalLink.addEventListener('click', function () { confirmationModal.hide(); // Hide the confirmation modal. }); }); } });