HEX
Server: nginx/1.28.1
System: Linux iZgw8b5bpgd4jyptfmmmxgZ 6.6.102-5.2.alnx4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Nov 27 23:11:10 CST 2025 x86_64
User: www (1000)
PHP: 8.2.28
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.scdc-marine.com/wp-content/themes/heku-cms/TempParts/assets/js/heku.js
// 页面资源加载完成 js代码段
$(document).ready(function(){
	//网站导航条自动悬浮设置 #heku-top-menu
	var $heku_header = $("#heku_top_menu");
	$(window).scroll(function(){
		if($(window).scrollTop() < 120 ){
			$heku_header.removeClass("header-is-visible  header-fade-out");
		}else if($(window).scrollTop() > 85 ){
			$heku_header.addClass("header-is-visible");
		}
	});
	
	//  搜索框的选择,自动隐藏和退出 #heku_search_info
	let searchToggleStatus = false;
	$(".search-toggle").on("click", function () {
		if (searchToggleStatus === false){
			$("#heku_search_info").addClass("opened");
			$(".search-toggle i").addClass("fa-times");
			searchToggleStatus = true;
		}
		else if (searchToggleStatus === true) {
			$("#heku_search_info").removeClass("opened");
			$(".search-toggle i").removeClass("fa-times");
			searchToggleStatus = false;
		}
	});

	//  侧边分类的选择,自动隐藏和退出 #heku_search_info
	$(".sidebar-nav-menu > li").on("click", function () {
		if ($(this).hasClass("current-menu-item")){
			$(this).removeClass("current-menu-item");
		} else {
			$(".sidebar-nav-menu > li").removeClass("current-menu-item");
			$(this).addClass("current-menu-item");

		}
	});

	//wow.js 滚动插件
	if(typeof(WOW)!= "undefined"){
		new WOW().init(); 
	}
	// 手机下拉菜单
	$(".mob-button").click(function () {
		$(".nav_menu").toggle();
	});

	var show_num = [];
	if(document.getElementById("canvas")){
		draw(show_num);
		$("#canvas").on('click',function(){
			draw(show_num);
		});
		$(".canvasreset").on('click',function(){
			draw(show_num);
		})
	}
	// 表单提交验证机制(循环验证表单 input标签的 验证条件 并阻断提交按钮事件)
	var forms = document.getElementsByClassName('needs-validation');
	Array.prototype.filter.call(forms, function(form) {
		form.addEventListener('submit', function(event) {
			var val = $(".input-val").val();
			var num = show_num.join("").toLowerCase();
			if ((form.checkValidity() === true) && (val == num) ) {
				registPost();
				event.preventDefault();
			}else{
				if(val==''){
					alert('请输入验证码2!');
				}else if(val == num){
					alert('提交成功2!');
				}else{
					alert('验证码错误!请重新输入2!');
					$(".input-val").val('');
					draw(show_num);
				}
				if(!(val == num)){
					$(".input-val").addClass('is-invalid');
				}
				event.preventDefault();
				event.stopPropagation();
			}
			form.classList.add('was-validated');
		}, false);
	});

});

	
// 提交到腾讯云弹出表单
function registModelPost() {   
	ajaxurl = "https://admin.linz-pack.net/model"
	data = $("#Heku_Model_Form :input")
		.filter(function(index, element) {
			return $(element).val() != '';
		})
		.serialize();
	$.ajax({
		url: ajaxurl,
		data: data,
		dataType: 'html',
		method: 'POST',
		success: function(serverResponse) {
			$('.send_email_success').fadeIn(500).delay(5200).fadeOut(1000);
			console.log(serverResponse);
			var email = $('#Heku_Model_Form #from_email').val();
			var mailformat = /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/;
			if(email.match(mailformat)){
				enhanced_conversion_data =  {
					"email": email
				};
			} else{
				enhanced_conversion_data =  {
					"email": 'test@test.com'
				};
			}
			gtag('event', 'conversion', {
				'send_to': 'AW-698468751/nN4XCImAroEDEI-Th80C',
				'value': 30.0,
				'currency': 'CNY'
			});
		},
		error: function(serverResponse) {
			alert('Failed to send mail!');
		}
	});
}

// 提交到腾讯云联系我们表单
function registContactPost() {   
	ajaxurl = "https://admin.linz-pack.net/model"
	data = $("#Heku_Contact_Form :input")
		.filter(function(index, element) {
			return $(element).val() != '';
		})
		.serialize();
	$.ajax({
		url: ajaxurl,
		data: data,
		dataType: 'html',
		method: 'POST',
		success: function(serverResponse) {
			$('.send_email_success').fadeIn(500).delay(5200).fadeOut(1000);
			console.log(serverResponse);
			var email = $('#Heku_Contact_Form #from_email').val();
			var mailformat = /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/;
			if(email.match(mailformat)){
				enhanced_conversion_data =  {
					"email": email
				};
			} else{
				enhanced_conversion_data =  {
					"email": 'test@test.com'
				};
			}
			gtag('event', 'conversion', {
				'send_to': 'AW-698468751/nN4XCImAroEDEI-Th80C',
				'value': 25.0,
				'currency': 'CNY'
			});
		},
		error: function(serverResponse) {
			alert('Failed to send mail!');
		}
	});
}

function registPost() {   
	ajaxurl = "http://127.0.0.10/wp-json/contact-form-7/v1/contact-forms/167/feedback"  
	data = $("#Heku_Form :input")
		.filter(function(index, element) {
			return $(element).val() != '';
		})
		.serialize();
	$.ajax({
		url: ajaxurl,
		data: data,
		dataType: 'html',
		method: 'POST',
		success: function(serverResponse) {
			alert(data);
			$('.alert-success').fadeIn(500).delay(1800).fadeOut(1000);
			$('.alert alert-info').fadeIn(500).delay(1800).fadeOut(1000);
			$('.alert alert-warning').fadeIn(500).delay(1800).fadeOut(1000);
			console.log(serverResponse);
			$('#s3_test_results').html(serverResponse);
		},
		error: function(serverResponse) {
			console.log(serverResponse)
			alert('失败:无法完成测试上传到S3'+serverResponse.error_msg);
		}
	});
}

function draw(show_num) {
	var canvas_width=$('#canvas').width() > 60 ? $('#canvas').width() : 110;
	var canvas_height=$('#canvas').height() > 20 ?$('#canvas').height() : 36;
	var canvas = document.getElementById("canvas");//获取到canvas的对象,演员
	var context = canvas.getContext("2d");//获取到canvas画图的环境,演员表演的舞台
	canvas.width = canvas_width;
	canvas.height = canvas_height;
	var sCode = "a,b,c,d,e,g,h,j,k,m,n,p,q,r,s,t,w,x,y,z,A,B,C,E,F,G,H,J,K,M,N,P,R,S,T,W,X,Y,Z,2,3,4,5,6,7,8,9";
	var aCode = sCode.split(",");
	var aLength = aCode.length;//获取到数组的长度
	for (var i = 0; i <= 4; i++) {
		var j = Math.floor(Math.random() * aLength);//获取到随机的索引值
		var deg = Math.random() * 30 * Math.PI / 180;//产生0~30之间的随机弧度
		var txt = aCode[j];//得到随机的一个内容
		show_num[i] = txt.toLowerCase();
		var x = 4 + i * 20;//文字在canvas上的x坐标
		var y = 20 + Math.random() * 8;//文字在canvas上的y坐标
		context.font = randomFont();
		context.translate(x, y);
		context.rotate(deg);
		context.fillStyle = randomColorB();
		context.fillText(txt, 0, 0);
		context.rotate(-deg);
		context.translate(-x, -y);
	}
	for (var i = 0; i <= 5; i++) { //验证码上显示线条
		context.strokeStyle = randomColorL();
		context.beginPath();
		context.moveTo(Math.random() * canvas_width, Math.random() * canvas_height);
		context.lineTo(Math.random() * canvas_width, Math.random() * canvas_height);
		context.stroke();
	}
	for (var i = 0; i <= 80; i++) { //验证码上显示小点
		context.strokeStyle = randomColorL();
		context.beginPath();
		var x = Math.random() * canvas_width;
		var y = Math.random() * canvas_height;
		context.moveTo(x, y);
		context.lineTo(x + 2, y + 2);
		context.stroke();
	}
	for (var i = 0; i <= 80; i++) { //验证码上显示小点
		context.strokeStyle = randomColorL();
		context.beginPath();
		var x = Math.random() * canvas_width;
		var y = Math.random() * canvas_height;
		context.moveTo(x, y);
		context.lineTo(x + 2, y - 2);
		context.stroke();
	}
}

function randomFont() {//得到随机的颜色值
	var fotcss = (Math.round() < 0.5 ) ? ("bold " + getRandomNumberByRange(24,30) + "px Arial") : ("bold " + getRandomNumberByRange(20,30) + "px Times");
	return fotcss;
}

function randomColorL() {//得到随机的颜色值
	var r = getRandomNumberByRange(120,255);
	var g = getRandomNumberByRange(120,255);
	var b = getRandomNumberByRange(120,255);
	return "rgb(" + r + "," + g + "," + b + ")";
}

function randomColorB() {//得到随机的颜色值 Black 深色的部分
	var r = getRandomNumberByRange(0,150);
	var g = getRandomNumberByRange(0,150);
	var b = getRandomNumberByRange(0,150);
	return "rgb(" + r + "," + g + "," + b + ")";
}

function getRandomNumberByRange(start, end) {
	return Math.round(Math.random() * (end - start) + start)
}