java 监听关闭按钮事件_监听浏览器关闭按钮点击事件 -- 使用JS

Onunload与Onbeforeunload Onunload,onbeforeunload都是在刷新或关闭时调用,可以在

Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的。而 Onbeforeunload 可以做到。曾经做一个考试系统,涉及到防止用户半途退出考试(有意或者无意),代码如下: Java代码

这段代码在FF和IE上都能正确执行.再点击关闭按钮时首先触发obbeforeunload事件,点击否定时不执行onload事件.

通常应用在 注销session等等登陆信息 等方面....

这里一并推荐一个教程

ActionScript3 里面写道: 运用onunload事件判断浏览器是刷新还是关闭窗口 function CloseOpen(event) {

if(event.clientX<=0 && event.clientY<0) {

alert("关闭");

}

else

{

alert("刷新或离开");

}

}

Java代码

window.onbeforeunload = function() //author: meizz

{

var n = window.event.screenX - window.screenLeft;

var b = n > document.documentElement.scrollWidth-20;

if(b && window.event.clientY 

{

alert("是关闭而非刷新");

window.event.returnValue = ""; //这里可以放置你想做的操作代码

}

}

------------------------------------------------------------------------------------------

另一篇的转载:

最近写东西的时候发现需要对浏览器的关闭进行监听,当用户关闭的时候需要调用session.invalid();清空session信息,但是仔细一查手册发现无论是body还是window都没有onclose事件,之后onload,onunload,beforeunload三个事件

然而三个时间无论是哪个都无法单独解决单独监听浏览器关闭的事件,因为在浏览器正常运行时先加载的是beforeunload->onunload->onload 但是麻烦的是如果刷新页面时是执行beforeunload->onunload,如果关闭浏览器的话是执行onunload(实际上关闭浏览器beforeunload也执行的).如果单单监听onunload的话是无法区别用户是刷新还是关闭窗口的.所以就要用beforeunload来监测了

window.οnbefοreunlοad=onclose;

function onclose()

{

if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)

{

removeSession();//这里添加具体的处理方案

}

}

经过测试,IE7浏览器可以监测监听到 alt+f4 或者单击右上角小叉子退出,但是对于多选项卡浏览的用户貌似无法监听到这点比较可惜~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用JavaScript调用扫描仪并将扫描结果传递给Java后台的完整示例代码: ```html <!DOCTYPE html> <html> <head> <title>扫描仪示例</title> </head> <body> <h1>扫描仪示例</h1> <button id="scanButton">开始扫描</button> <script> // 获取按钮元素 const scanButton = document.getElementById('scanButton'); // 点击按钮时调用扫描函数 scanButton.addEventListener('click', function() { scanDocument(); }); // 扫描函数 function scanDocument() { // 使用getUserMedia获取媒体流 navigator.mediaDevices.getUserMedia({ video: true }) .then(function(stream) { const video = document.createElement('video'); video.srcObject = stream; video.play(); // 创建canvas用于显示扫描结果 const canvas = document.createElement('canvas'); const context = canvas.getContext('2d'); // 在canvas上绘制视频帧 function drawVideoFrame() { context.drawImage(video, 0, 0, canvas.width, canvas.height); requestAnimationFrame(drawVideoFrame); } // 开始绘制视频帧 requestAnimationFrame(drawVideoFrame); // 在canvas上点击时进行扫描 canvas.addEventListener('click', function() { // 在canvas上绘制的内容即为扫描结果 const imageURI = canvas.toDataURL('image/png'); // 将扫描结果传递给后台 sendScanResult(imageURI); }); // 将canvas添加到页面中显示 document.body.appendChild(canvas); }) .catch(function(error) { console.log('无法访问摄像头:', error); }); } // 将扫描结果传递给后台 function sendScanResult(imageURI) { const xhr = new XMLHttpRequest(); xhr.open('POST', '/your-endpoint', true); xhr.setRequestHeader('Content-Type', 'application/json'); // 创建要发送给后台的数据对象,包含扫描结果的图像数据 const data = { scanResult: imageURI }; // 将数据转换为JSON字符串 const jsonData = JSON.stringify(data); // 发送请求 xhr.send(jsonData); // 监听请求完成事件 xhr.onload = function() { if (xhr.status === 200) { console.log('扫描结果已发送至后台'); } else { console.log('发送请求失败'); } }; } </script> </body> </html> ``` 在上述代码中,我们创建了一个简单的HTML页面,并通过JavaScript实现了以下功能: 1. 点击"开始扫描"按钮后,调用`scanDocument()`函数。 2. `scanDocument()`函数使用`getUserMedia()`方法获取摄像头的媒体流,并将视频显示在页面上的canvas元素中。 3. 在canvas上点击时,调用`sendScanResult()`函数将扫描结果发送给后台。 4. `sendScanResult()`函数使用XMLHttpRequest对象发送POST请求,将扫描结果作为图像数据发送给后台接口。 请根据你的具体需求和后台接口进行适当修改。记得将`/your-endpoint`替换为你的后台接口的URL。同时,确保你的项目在HTTPS环境下运行,以便在浏览器中访问摄像头。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值