勿在重定向的href中定义onclick事件

2024-04-21 21:58

本文主要是介绍勿在重定向的href中定义onclick事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

事情时忙时停,单点登录大致算完成了。不过有个问题不断的蹦出来,是由于客户端的问题导致。
      需求是这样的:一个用户同一时间只能在一个地方登录,如果用户已经在线,则拒绝所有后面的登录。
   “在线”可以用日志System_Event来标识,惟一的入口是“用户登录”事件;而“不在线”这个状态则可能由三种事件引发:1.用户通过“注销”入口正常退出;2.操作过时Session自动注销;3.关闭浏览器等同于“注销”
      前两个容易解决,配置一个SessionListener,在sessionDestroyed接口中加上setUserOffline()方法,在事件1中只要调session.invalidate()即可,这个方法对于注销是最省事的了,不需逐个对session变量removeAttribute,不过最好是try{}catch(e){}一把。
      接下来的问题是事件3,它需要监测用户点击“关闭×”这个按钮,在不使用全屏改变Browser外观情况下,只有window.onUnload这个事件,这就需要区分是flush和close的情况了。不幸的是,目前知道两种方法的event.clientY和screenLeft经实践证明都不能很好的兼容各种浏览器!!问题在于,我牺牲了刷新的前题下,有些客户端在点击“×”时还不能确保会运行unload事件,而且怪的是,刚登录时关闭页面似乎会执行,而隔一段时间(大致是20~分钟)又不灵了。unLoad中试过几种方法,按效果从好到坏排列是:Ajax提交、window.showModalDialog、window.location=、window.open。
      还有一个问题,平时不太会注意,通常我们希望在点链接的时候再执行某些js操作。但是,发生这两件事的顺序在不同的浏览器之间又表现不同,究竟是先重定位还是先onclick呢?最好的办法是将href设为'#',然后将重定位的操作也包含在onclick中。
if (event.clientX<=0 && event.clientY<0){}
var s="close"; if(s=="fresh") if (window.screenLeft>10000){alert('关闭');}else{alert('刷新');}else{ alert('关闭');}
   

这篇关于勿在重定向的href中定义onclick事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/924132

相关文章

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

【经验交流】修复系统事件查看器启动不能时出现的4201错误

方法1,取得『%SystemRoot%\LogFiles』文件夹和『%SystemRoot%\System32\wbem』文件夹的权限(包括这两个文件夹的所有子文件夹的权限),简单点说,就是使你当前的帐户拥有这两个文件夹以及它们的子文件夹的绝对控制权限。这是最简单的方法,不少老外说,这样一弄,倒是解决了问题。不过对我的系统,没用; 方法2,以不带网络的安全模式启动,运行命令行,输入“ne

BT天堂网站挂马事件后续:“大灰狼”远控木马分析及幕后真凶调查

9月初安全团队披露bt天堂网站挂马事件,该网站被利用IE神洞CVE-2014-6332挂马,如果用户没有打补丁或开启安全软件防护,电脑会自动下载执行大灰狼远控木马程序。 鉴于bt天堂电影下载网站访问量巨大,此次挂马事件受害者甚众,安全团队专门针对该木马进行严密监控,并对其幕后真凶进行了深入调查。 一、“大灰狼”的伪装 以下是10月30日一天内大灰狼远控的木马样本截图,可以看到该木马变种数量不

浙大数据结构:树的定义与操作

四种遍历 #include<iostream>#include<queue>using namespace std;typedef struct treenode *BinTree;typedef BinTree position;typedef int ElementType;struct treenode{ElementType data;BinTree left;BinTre

类和对象的定义和调用演示(C++)

我习惯把类的定义放在头文件中 Student.h #define _CRT_SECURE_NO_WARNINGS#include <string>using namespace std;class student{public:char m_name[25];int m_age;int m_score;char* get_name(){return m_name;}int set_name

【vue3|第28期】 Vue3 + Vue Router:探索路由重定向的使用与作用

日期:2024年9月8日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉在这里插入代码片得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083;0.98365 = 0.0006 说

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

react笔记 8-18 事件 方法 定义方法 获取/改变数据 传值

1、定义方法并绑定 class News extends React.Component {constructor(props) {super(props)this.state = {msg:'home组件'}}run(){alert("我是一个run") //方法写在类中}render() {return (<div><h2>{this.state.msg}</h2><button onCli