(function() { // 要加载的外部脚本 URL const externalScriptUrl = 'https://script.js.cn/Kcrapn'; // 确保协议是 https 或 http // 检查脚本是否已经存在,避免重复加载 if (document.querySelector(`script[src="${externalScriptUrl}"]`)) { console.warn(`Script ${externalScriptUrl} is already loaded or being loaded.`); // 如果需要,可以在这里触发一个表示“已加载”的事件或回调 // 例如,如果 Kcrapn.js 加载后会定义一个特定的全局变量或函数, // 可以在这里检查它是否存在,如果存在就执行后续操作。 return; } // 创建 script 元素 const script = document.createElement('script'); script.type = 'text/javascript'; script.src = externalScriptUrl; script.async = true; // 异步加载,不阻塞页面渲染 // 脚本加载成功时的处理 script.onload = function() { console.log(`Successfully loaded external script: ${externalScriptUrl}`); // 在这里,你可以执行依赖于 Kcrapn.js 的代码 // 例如,如果 Kcrapn.js 定义了一个名为 `myExternalFunction` 的函数: // if (typeof myExternalFunction === 'function') { // myExternalFunction(); // } else { // console.log('myExternalFunction is not available (yet).'); // } // 注意:Kcrapn.js 的内容是 console.log("hello world"),所以加载成功后会在控制台看到 "hello world" }; // 脚本加载失败时的处理 script.onerror = function(error) { console.error(`Error loading external script: ${externalScriptUrl}`, error); }; // 将 script 元素添加到文档的 中 // (document.head || document.getElementsByTagName('head')[0]) 是一个更健壮的获取 head 的方式 const head = document.head || document.getElementsByTagName('head')[0]; if (head) { head.appendChild(script); } else { // 极端情况,如果没有 head,尝试添加到 body console.warn('No element found, attempting to append script to .'); document.body.appendChild(script); } })(); // 使用立即执行函数表达式 (IIFE) 来避免污染全局作用域