网页如何防止刷新重复提交与如何防止后退的解决方法 提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办?...点击后退按钮,再点击后退按钮,你可以看到这时打开的是本页面之前的页面!(当然,这是在你的客户端启用了JavaScript功能的条件下。) 如果客户按后退,怎么办?...起先我对于居然有人想要禁用浏览器的后退按钮感到不可思议。后来,看到竟然有那么多的人想要禁用这个后退按钮,我也就释然(想要禁用的只有后退按钮,不包括浏览器的前进按钮)。...不过我注意到,如果使用这种方法,虽然用户点击一下后退按钮时他不会看到以前输入数据的页面,但只要点击两次就可以,这可不是我们希望的效果,因为很多时候,固执的用户总是能够找到绕过预防措施的办法。 ...另外一种禁用后退按钮的办法是用客户端JavaScript打开一个没有工具条的窗口,这使得用户很难返回前一页面,但不是不可能。
,浏览器对此进行了一些限制 在用户操作西安才允许创建弹窗 网页加载过程中调用window.open()没有效果,还可能向用户显示错误 弹窗通常可能在鼠标点击或按下键盘中某个键的情况下才能打开 弹窗屏蔽程序...():接收一个要显示给用户的字符串(如果不是,会调用传入值的toString进行转换),对话框只有一个“OK”(确定)按钮 confirm: 确认框有两个按钮:“Cancel”(取消)和“OK”(确定)...assign()方法 常见的是设置location.href,除了hash外,设置location的一个属性就会导致页面重新加载新URL 如果不希望增加历史记录,可以使用replace()方法,重定向后后退按钮是禁用状态...为防止滥用,这个状态的对象大小是有限制的,通常在 500KB~ 1MB 以内 pushState()会创建新的历史记录,所以也会相应地启用“后退”按钮。...对象 点击“后退”按钮直到返回最初页面时, event.state 会为 null 可以通过 history.state 获取当前的状态对象,也可以使用replaceState()并传入与pushState
JavaScript 事件绑定 ◆键盘鼠标◆ 键盘事件: 当键盘接收到按下弹起等按键时,执行操作.... 按钮1" onclick="alert('按钮1被按下了......')"> 按钮2" onclick="alert('按钮2被按下了......,按下按钮自动清空已经输入的数据.... 设置单次定时器: 以下案例,实现当点击删除按钮时,屏幕提示删除成功,在5秒后自动的隐藏标签.
操作机制: ·立即选择一个选项,提交选项并关闭菜单; ·触摸提示框外部或按下后退键,取消操作并关闭对话框。 减少打扰 简单提示框比简单菜单更具中断性,应该谨慎使用。 ?...例如,用户可以聆听多个铃声,但只能在触摸“ok”时进行最终选择。 点击确认对话框中的“取消”,或按Android的“后退”,取消操作,放弃所有更改并关闭对话框。 ?...左:选择日期 右:选择时间 取消与确定按钮 确认提示框需要提供明确的确认按钮和明确的取消按钮。 点击取消按钮、返回按钮或离开确认提示框将放弃之前的更改。 ?...全屏提示框可用于满足以下标准的内容或任务: ·该提示框包含需要输入编辑器(IME)的组件(如选择器或form fields),例如键盘 ·当没有实时保存更改时 ·当app中没有草稿功能时(无法自动存到草稿...确认按钮将被禁用,直到满足对话框中的所有必填字段都完成时,确认操作才会被激活 丢弃(离开) 丢弃操作(屏幕左上角的“X”)和后退按钮均会关闭全屏对话框并放弃之前所做的更改。
当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。 如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。...当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。...应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。...应用场景: 当用户在最后一个输入框按下回车按键时,表单提交. onkeypress 某个键盘按键被按下并松开。 onkeyup 某个键盘按键被松开。...onmousedown 鼠标按钮被按下。 onmousemove 鼠标被移动。 onmouseout 鼠标从某元素移开。 onmouseover 鼠标移到某元素之上。
history.back() - 与在浏览器点击后退按钮相同 history.forward() - 与在浏览器中点击按钮向前相同 JavaScript 消息框 警告框 当警告框出现后,用户需要点击确定按钮才能继续进行操作...alert("文本") 确认框 当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。 如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。...confirm("文本") 提示框 当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。 如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。...prompt("文本","默认值") JavaScript 计时 通过使用 JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。...创建和存储 cookie(需要时再看)
当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操作。 如果用户点击确认,那么返回值为输入的值,如果用户点击取消,那么返回值为null。...当页面被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。 HTML DOM模型被构造为对象的树。 HTML DOM数 ? ...应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。...应用场景: 当用户在最后一个输入框按下回车按键时,表单提交. onkeypress 某个键盘按键被按下并松开。 onkeyup 某个键盘按键被松开。...onmousedown 鼠标按钮被按下。 onmousemove 鼠标被移动。 onmouseout 鼠标从某元素移开。 onmouseover 鼠标移到某元素之上。
间歇调用与超时调用类似,只不过它会按照指定的时间间隔重复执行代码,直至间歇调用被取消或者页面被卸载。...取消间歇调用的重要性要远远高于取消超时调用,因为在不加干涉的情况下,间歇调用将会一直执行到页面卸载。...按钮外,还会显示一个 Cancel(“取消”)按钮,两个按钮可以让用户决定是否执行给定的操作。...当通过上述任何一种方式修改 URL 之后,浏览器的历史记录中就会生成一条新记录,因此用户通过单击”后退”按钮都会导航到前一个页面。 要禁用这种行为,可以使用 replace() 方法。...负数表示向后跳转(类似于单击浏览器的”后退”按钮),正数表示向前跳转(类似于单击浏览器的”前进”按钮)。
当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。 如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。 语法: confirm("你确定吗?")...当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。 如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。...应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。...应用场景: 当用户在最后一个输入框按下回车按键时,表单提交. onkeypress 某个键盘按键被按下并松开。 onkeyup 某个键盘按键被松开。...onmousedown 鼠标按钮被按下。 onmousemove 鼠标被移动。 onmouseout 鼠标从某元素移开。 onmouseover 鼠标移到某元素之上。
“后退”的情况,缺点是当用户端禁用了JavaScript之后即失效。...这种方法的原理是,用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后退按钮永远不会变为可用。我想这可能正是许多人所寻求的方法,但这种方法仍旧不是任何情况下的最好方法。...3、当键盘敲下后退键(Backspace)后 1、禁止浏览器自动后退 2、但不影响密码、单行文本、多行文本输入框等的回退操作 代码如下: javascript”>...true:false; //当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效 var flag2=(ev.keyCode == 8 && t !...“后退”按钮作出的反应,客户端浏览器需要打开JavaScript代码。
var result = window.confirm("请按按钮"); if (result) { console.log("您按了确认!")...; } else { console.log("您按了取消!"); } 2.1.3 提示框 提示框(Prompt)用于在用户进入页面前输入值。返回值是用户输入的字符串或null。...navigator.onLine: 通过检查网络连接状态,可以实现基于网络状态的应用程序逻辑,比如在离线状态下禁用某些功能。...console.log(history.length); history.back() 加载历史记录中的前一个URL,与浏览器的“后退”按钮功能相同。...这对于判断是否可以后退或前进很有用。 history.back(): 作用等同于点击浏览器的“后退”按钮,用户会返回到前一个页面。
相反,UIWebView是和APP是同一个进程,UIWebView加载页面占用的内存被计算为APP内存占用的一部分,当APP超过了系统分配的内存,则会被操作系统crash。...要允许用户在Web历史页面中前进或者后退,要为按钮设置goBack或者goForward的动作。当用户不能在某个方向上再移动时,使用canGoBack或者canGoForward来禁用按钮。...默认情况下,Web视图会自动将出现在Web内容中的电话号码转换成电话链接。当电话链接被点击时,电话应用程序就会启动并拨打该号码。...布尔值,用于确定是否按下连接可以显示链接目标的预览。 - goBack。导航到后退列表中的后腿项中。 - goForward。导航到后退列表中的前进项中。...当使用 Https 协议加载web内容时,使用的证书不合法或者证书过期时需要使用该方法. - (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge
二、Windows对象 Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。...当警告框出现后,用户需要点击确定按钮才能继续进行操作。 语法: 确认框(了解即可) 确认框用于使用户可以验证或者接受某些信息。...当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。 如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。...当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。 如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。...; 计时相关 通过使用 JavaScript,我们可以在一定时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。
有很多的应用场景都会遇到重复提交问题,比如: 点击提交按钮两次。 点击刷新按钮。 使用浏览器后退按钮重复之前的操作,导致重复提交表单。 使用浏览器历史记录重复提交表单。...几种防止表单重复提交的方法 1.禁掉提交按钮。表单提交后使用JavaScript使提交按钮disable。这种方法防止心急的用户多次点击按钮。...这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。 3.在session中存放一个特殊标志。...当表单页面被请求时,生成一个特殊的字符标志串,存在session中,同时放在表单的隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从session中删除它,然后正常处理数据。 ...如果发现表单提交里没有有效的标志串,这说明表单已经被提交过了,忽略这次提交。 这使你的web应用有了更高级的XSRF保护。 4.在数据库里添加约束。
当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。 如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。 ...当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。 如果用户点击确认,那么返回值为输入的值。...应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。...应用场景: 当用户在最后一个输入框按下回车按键时,表单提交. onkeypress 某个键盘按键被按下并松开。 onkeyup 某个键盘按键被松开。...onmousedown 鼠标按钮被按下。 onmousemove 鼠标被移动。 onmouseout 鼠标从某元素移开。 onmouseover 鼠标移到某元素之上。
本文将分享 javascript 中检测各种鼠标按键的点击事件,包括左键、右键、中键等。...它返回一个数字,表示哪个按钮被按下:0:左键1:中间按钮(滚轮按钮)2:右键3:浏览器后退按钮(并非始终支持)4:浏览器前进按钮(并非始终支持)创建事件监听器要检测各种鼠标点击,首先需要为鼠标点击事件设置一个事件监听器...document.addEventListener('mousedown', function(event) { console.log(`鼠标按钮被按下: ${event.button}`);}...);检测特定的鼠标点击按钮在事件监听器回调函数中,可以使用event.button属性来确定按下的鼠标按钮,并根据按钮执行不同的操作。...: console.log('点击了未知按钮'); }});阻止右键单击的默认操作浏览器通常会为某些鼠标点击指定默认操作,例如右键点击时显示上下文菜单。
; 在iOS上,这个属性只在支持3D Touch的设备上支持 在iOS 10及以后的系统版本默认值是YES,之前的默认值是NO 如果将该属性的值设置为YES,则iOS用户可以按下链接来预览链接,并可以检测到地址和电话号码等数据...这样的预览被用户称为peeks 如果用户在链接预览上更深入地按下,预览将pop到目标网址。...@property(nonatomic) BOOL javaScriptEnabled; 默认值YES 设置为NO将会禁用页面加载的或执行的JavaScript 但这个配置不会影响用户的script...Store并返回 + (instancetype)storeWithURL:(NSURL *)url; 当创建时,Store的内容从该路径下的所有编译过的规则列表加载 新增的变化,如编译一个新的规则列表...frame.request.URL.host属性来标识这个确认界面 确认界面应该只有两个按钮,典型的就是确认和取消 显示一个JavaScript输入界面 - (void)webView:(WKWebView
有了 debugger 这个关键字,我们可以非常方便地对 JavaScript 代码进行调试,比如使用 JavaScript Hook 时,我们可以加入 debugger 关键字,使其在关键的位置停下来...禁用所有的断点 这时候我们再重新点击一下 Resume script execution 按钮,跳过当前断点,页面就不会再进入到无限 Debugger 的状态了。...我们可能会想着去掉 Breakpoints 里勾选的断点,心想这样不就禁用了吗?大家尝试一下取消勾选,如图所示。...取消勾选 然而,取消之后再继续点击 Resume 按钮,它依然不断地停在有 debugger 关键字的地方,并没有什么效果。...其实,Breakpoints 只代表了我们手动添加的断点,对于 debugger 关键字声明的断点,在这里直接取消是没有用的。 那这种情况下还有什么办法吗? 有的。