s4y*_*s4y 12 html javascript safari

当文本输入到输入中时,Safari会在关闭选项卡或窗口之前提示(?)提示.
在某些情况下,作为Web开发人员,这是不可取的 - 例如,当输入是实时搜索时,用户可能已经获得了他在窗口关闭时要查找的结果,即使仍有文本在该领域.
我怎样才能让Safari知道特定输入中的文本不需要保护?
看起来您可以通过onbeforeunload启用处理程序来禁用整个页面的此警告<body>(即使是空的处理程序也可以).例如,以下内容不会产生警告:
<body onbeforeunload="">
<form method="get"><input></form>
</body>
Run Code Online (Sandbox Code Playgroud)
我不确定这是预期的行为还是错误.
我想我已经找到了解决这个问题的方法,尽管这无疑是一个 hack(即如果 Safari 改变了这个功能的实现方式,它可能会停止工作)。这里显示了一点 jQuery:
$('.unimportant').live('blur', function(){
var olddisplay = this.style.display;
this.style.display = 'none';
this.clientLeft; // layout
this.style.display = olddisplay;
});
Run Code Online (Sandbox Code Playgroud)
演示(尝试在“不重要”字段中键入内容,单击页面上的其他位置,然后关闭窗口)。
简而言之:
您还可以更改输入值、触发器布局,然后将其改回来。
这里的一个限制是必须明确地清理输入。在这种情况下,它会变脏直到blur。这在我的情况下效果很好,可能在许多其他情况下,因为输入将受到保护,不会意外关闭窗口,直到操作页面上的其他内容(例如单击链接)。keyup如果您愿意忍受每次按下按键时插入点闪烁的情况,您可以选择运行此功能。
我对更清洁的解决方案持开放态度。
| 归档时间: |
|
| 查看次数: |
1624 次 |
| 最近记录: |