隐藏alert和confirm弹出框的IP

本文介绍了一种在JavaScript中重写alert和confirm的方法,通过创建隐藏的iframe来避免显示IP地址等敏感信息,适用于PC端和移动端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在js的最前面加上如下代码即可:

//重写alert
window.alert = function(name){
    var 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);
}
//重写confirm 不显示ip地址  
var wConfirm = window.confirm;  
window.confirm = function (message) {  
    try {  
        var iframe = document.createElement("IFRAME");  
        iframe.style.display = "none";  
        iframe.setAttribute("src", 'data:text/plain,');  
        document.documentElement.appendChild(iframe);  
        var alertFrame = window.frames[0];  
        var iwindow = alertFrame.window;  
        if (iwindow == undefined) {  
            iwindow = alertFrame.contentWindow;  
        }  
        var result = iwindow.confirm(message);  
        iframe.parentNode.removeChild(iframe);  
        return result;  
    }  
    catch (exc) {  
        return wConfirm(message);  
    }  
}

上面这个代码在PC端中使用的样子:


移动端使用的样子:



我的页面全部代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="/media/collegeFront/css/re-sign.css">
    <link rel="stylesheet" type="text/css" href="/media/collegeFront/css/reset.css">
</head>
<body>
    <div class="banner">
        <img src="/media/collegeFront/images/re-sign-bg.jpg" alt="">
    </div>
    <div class="rule">
        <h6>签到规则</h6>
        <p>1.每人每天只能签到一次。</p>
        <p>2.签到和学习的章节没有关系。</p>
        <p>3.从报名到学习结束每人只有三次签到机会。</p>
    </div>
    <div class="rule">
        <h6>你的签到情况:</h6>
        <p id="signDetail">你已使用补签次数${collegeUser.isRepairSignTimes}次,你剩余补签次数为${collegeUser.repairSignTimes}次。</p>
    </div>
    
    <div class="btn">
        <input type="button" value="补签" οnclick="show_confirm();">
    </div>
</body>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script>
//重写alert
window.alert = function(name){
    var 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);
}
//重写confirm 不显示ip地址  
var wConfirm = window.confirm;  
window.confirm = function (message) {  
    try {  
        var iframe = document.createElement("IFRAME");  
        iframe.style.display = "none";  
        iframe.setAttribute("src", 'data:text/plain,');  
        document.documentElement.appendChild(iframe);  
        var alertFrame = window.frames[0];  
        var iwindow = alertFrame.window;  
        if (iwindow == undefined) {  
            iwindow = alertFrame.contentWindow;  
        }  
        var result = iwindow.confirm(message);  
        iframe.parentNode.removeChild(iframe);  
        return result;  
    }  
    catch (exc) {  
        return wConfirm(message);  
    }  
}
function show_confirm(){
	var r=confirm("是否补签?");
	if (r==true)
	  {
		$.ajax({
			type:"POST",
			url:"/beautifulreader/college/user/repairSign",
			async:false,
			success:function(data){
				alert(data.msg);
				$("#signDetail").innerHTML="你已使用补签次数"+data.collegeUser.isRepairSignTimes+"次,你剩余补签次数为"+data.collegeUser.repairSignTimes+"次。";
			}
		})
	}
}
</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值