分享手机端复制链接及成功后弹窗提示的2种方法

直接上代码了

      <!-- 底部分享 -->
      <div class="shareBox">
        <div class="copyLink">
          <button @click="copyLink(qrCodeText)" class="clickBtn">
            <span><img src="@/assets/common/copyLink.png" alt="" /></span
            >复制链接
          </button>
       </div>

 方法一:自己写一个弹窗的样式获取dom控制显示和隐藏

   //点击按钮复制链接
    copyLink(val) {
      let url = val; // 后台接口返回的链接地址
      let inputNode = document.createElement("input"); // 创建input
      inputNode.setAttribute("readonly", "readonly"); //设置只读,否则移动端使用复制功能时会造成软键盘自动弹起
      inputNode.value = url; // 赋值给 input 值
      document.body.appendChild(inputNode); // 插入进去
      inputNode.select(); // 选择对象
      document.execCommand("Copy"); // 原生调用执行浏览器复制命令
      inputNode.className = "oInput";
      inputNode.style.display = "none"; // 将input隐藏
      document.getElementById("message").style.display = ""; //复制后弹出-自己写一个弹窗的样式
      //1.5秒后自动隐藏
      setTimeout(
        "document.getElementById('message').style.display='none'",
        1500
      );
     
      inputNode.remove(); //将input销毁

     
    },

 

 弹窗效果展示

方法二:直接用window.alert()方法

   copyLink(val) {
      console.log(val, "复制链接");
      let url = val; // 后台接口返回的链接地址
      let inputNode = document.createElement("input"); // 创建input
      inputNode.setAttribute("readonly", "readonly"); //设置只读,否则移动端使用复制功能时会造成软键盘自动弹起
      inputNode.value = url; // 赋值给 input 值
      document.body.appendChild(inputNode); // 插入进去
      inputNode.select(); // 选择对象
      document.execCommand("Copy"); // 原生调用执行浏览器复制命令
      inputNode.className = "oInput";
      inputNode.style.display = "none"; // 将input隐藏
     
      // 去掉ios(h5)中alert弹框里面的网址
       window.alert = function (name) {
         const iframe = document.createElement("IFRAME");
         iframe.style.display = "none";
         iframe.setAttribute("src", "data:text/plain,");
         document.documentElement.appendChild(iframe);
         window.frames[0].window.alert(name);
         iframe.parentNode.removeChild(iframe);
       };

      window.alert("已复制到粘贴板");
      inputNode.remove(); //将input销毁  
    },

弹窗效果展示

 

<think>好的,我需要帮用户分析他们提供的HTML代码,并解决他们的请求:将这段代码转换成可点击的链接。首先,我要理解用户的需求。他们可能想分享这个整蛊网页,让其他人通过链接直接访问,而不是复制粘贴代码。 接下来,我得看看这段代码是做什么的。代码是一个简单的HTML页面,包含循环弹出alert框的JavaScript。这属于客户端脚本,运行在浏览器里。用户可能希望其他人点击链接后自动触发这些弹窗,达到整蛊效果。 但问题来了,直接将HTML文件转为链接需要将文件托管到某个服务器上,这样用户才能通过URL访问。用户可能没有自己的服务器,所以需要考虑免费的静态托管服务,比如GitHub Pages、Netlify或者CodePen等。 首先,我需要检查代码是否有问题。这段代码看起来没问题,循环弹窗5次,最后再弹一次。但要注意,现代浏览器可能会拦截过多的弹窗,认为这是恶意行为,所以实际效果可能受限。需要提醒用户这一点。 然后,考虑如何将HTML文件转为链接。如果用户有GitHub账号,可以指导他们创建仓库,上传文件,启用GitHub Pages。但步骤较多,用户可能需要更简单的方案。另一个办法是使用在线代码托管平台,比如CodePen或JSFiddle,但可能需要注册。 或者,可以使用数据URI的方式,将整个HTML代码编码成URL。这样用户只需点击一个链接,浏览器就会解析并执行代码。不过,这种方法生成的URL会很长,且某些浏览器可能限制数据URI的执行,尤其是弹窗脚本。 测试数据URI的方法:将HTML内容转换为base64编码,然后生成`data:text/html;base64,<encoded-data>`。但JavaScript在数据URI中的执行可能被浏览器安全策略阻止,特别是弹窗。需要验证这一点。 另外,还可以使用第三方服务,如jsbin.com,它允许匿名创建代码片段并生成分享链接。指导用户将代码粘贴到jsbin,保存后获取公开链接。这可能更可靠,因为服务商会处理托管和URL生成。 需要一步步解释这些方法,并推荐最简单的方式。考虑到用户可能希望快速生成链接,使用jsbin或类似平台可能最方便。同时提醒浏览器拦截的问题,建议测试不同浏览器。 最后,确保回答结构清晰,分步骤说明,并给出注意事项,比如弹窗可能被拦截,需要允许弹窗等。确保用户明白潜在的限制,并提供备选方案。</think>我将为您分步解析如何将这段HTML代码转化为可访问的链接,并提供三种实现方案: **一、代码功能解析** ```html <script> for (let i = 0; i < 5; i++) { // 循环触发弹窗 alert("哈哈,你被整啦!再点一下还有哦~"); } alert("别点啦,骗到你了吧,是不是很无奈~"); // 终止提示 </script> ``` 该脚本通过`alert()`函数实现连续弹窗交互效果,属于纯前端整蛊程序 **二、实现方案对比** | 方案 | 优点 | 缺点 | 适用场景 | |------|------|------|----------| | 数据URL | 无需服务器 | 链接过长 | 快速测试 | | GitHub Pages | 永久有效 | 需注册账号 | 长期使用 | | 在线IDE | 即时生效 | 需平台审核 | 临时分享 | **三、推荐实现步骤(以GitHub Pages为例)** 1. 访问 [gist.github.com](https://gist.github.com) 2. 创建新Gist,文件名填`prank.html` 3. 粘贴完整代码到编辑区 4. 点击"Create public gist"生成代码片段 5. 访问 `https://<你的用户名>.github.io/<仓库名>/prank.html` **四、注意事项**⚠️ 1. 现代浏览器可能拦截连续弹窗,建议添加白名单 2. 手机端需切换桌面模式访问 3. 实际效果演示:[模拟链接](data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDx0aXRsZT5RUeWkqeWVpeWwj+aIkQo8L2hlYWQ+Cjxib2R5PgogIDxzY3JpcHQ+CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykgewogICAgICBhbGVydCgiSGVsbG8hIik7CiAgICB9CiAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==)(需手动允许弹窗) **五、扩展建议** 若需要增强效果,可结合以下技术: 1. 使用`setInterval()`实现无限循环 2. 添加鼠标追踪特效 3. 集成音效播放(需HTTPS环境) 请根据实际需求选择实施方案,建议优先考虑GitHub Pages方案以获得最佳兼容性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值