IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Discuz论坛点击下载按钮时,自动复制提取码到剪切板上 -> 正文阅读

[JavaScript知识库]Discuz论坛点击下载按钮时,自动复制提取码到剪切板上

需求:

想实现这么一个功能,点击【下载地址】按钮时,自动复制下面的提取码到剪切板

效果如下:

?实现的JQuery代码:?

function downloadFile(url) {
	//console.log(url);
	if(url.indexOf("tip.html") != -1) {
		openNewWindow(url);
	} else {
		var takeCode = jQuery('.nex_sc_details').find('a');
		takeCode.click();
		//必须用定时器,因为会员源码第一次获取到的是“点击查看”(每0.5秒执行一次)
		var i = 0;
		var myTimer = setInterval(function() {
		    var li=jQuery(".nex_sc_details ul li:last-child");
			var code =li.text().substring(3);
			i++;
			//console.log("第" + i + "次执行定时器,code=" + code);
			if(code != null && code != "" && code != undefined && code != '点击查看') {
				gotoAgreement(url, code);
				//停止定时器
				clearInterval(myTimer);
			}
		}, 500);
	}
}

function gotoAgreement(url, code) {
	layer.open({
		title: "下载协议(请认真阅读再下载本站资源,谢谢!)",
		area: ["550px", "400px"],
		content: '<div id="buy-protocol">' +
			'<p>1、<font color="red">免责声明:本站所有的资源仅供学习与参考,请勿用于商业用途;</font></p>' +
			'<p>2、本站只提供资源下载服务,自行安装和使用,不提供技术和支持;</p>' +
			'<p>3、本站资源均为网络收集,不保证资源的完整性、可用性、安全性;</p>' +
			'<p>4、禁止恶意使用本站资源搭建或从事违法行为,违者自行承担责任;</p>' +
			'<p>5、提示需要付款购买的资源,请自行判断谨慎购买,谨防上当受骗;</p>' +
			'<p>6、如有侵犯您的版权,请及时联系我们,我们将第一时间下架处理;</p>' +
			'<p>7、模板和源码资源需要您有一定开发基础,小白建议购买正版服务;</p>' +
			'<p>8、如果您不同意以上条款,请您不要继续下载本站提供的资源文件;</p>' +
			'<p>9、点击<font color="#1E9FFF">同意协议并下载</font>按钮会自动复制<font color="#1E9FFF">提取码</font>,直接粘贴即可使用;</p>' +
			'</div><style>.layui-layer-dialog .layui-layer-content{padding:10px 20px;} #buy-protocol p{font-size:16px;line-height:30px;}</style>',
		btn: ["取消", "同意协议并下载"],
		btn2: function(index, layero) {
			//按钮【按钮二】的回调
			var oInput = document.createElement('input');
			oInput.value = code;
			document.body.appendChild(oInput);
			oInput.select(); // 选择对象
			document.execCommand("Copy"); // 执行浏览器复制命令
			oInput.className = 'oInput';
			oInput.style.display = 'none';
			//显示自动关闭倒计秒数
			layer.alert("成功复制提取码:" + code + "", {
				time: 3 * 1000,
				success: function(layero, index) {
					var timeNum = this.time / 1000,
						setText = function(start) {
							layer.title((start ? timeNum : --timeNum) + ' 秒后自动跳转到下载地址', index);
						};
					setText(!0);
					this.timer = setInterval(setText, 1000);
					if(timeNum <= 0) clearInterval(this.timer);
				},
				end: function() {
					clearInterval(this.timer);
					//跳转到下载地址
					openNewWindow(url);
				}
			});
		}
	});
}

function openNewWindow(url) {
	jQuery('body').append(jQuery('<a href="' + url + '" target="_blank" id="openNewWindow"></a>'));
	document.getElementById("openNewWindow").click(); //点击事件
	jQuery('#openNewWindow').remove();
}

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:31:32  更:2022-05-09 12:31:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:20:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码