Chrome 在没有任何用户交互的情况下立即关闭 Confirm() 提示

     2023-04-12     50

关键词:

【中文标题】Chrome 在没有任何用户交互的情况下立即关闭 Confirm() 提示【英文标题】:Chrome dismisses confirm() promps immediately without any user interaction 【发布时间】:2018-07-09 16:48:05 【问题描述】:

我们网站的一些用户报告说confirm 对话框出现了,但立即消失了,就好像它们被自动关闭一样。这似乎只影响 Chrome,而不影响其他浏览器(甚至 Chromium)。

搜索类似问题会发现很多人抱怨onbeforeunload 中的confirm 对话框,但这不是我的问题:在那种情况下不是confirm 对话框在页面初始加载时显示(由 jQuery $(document).ready() 触发)。

Chrome documentation 表明confirm 不会激活其选项卡,并且在切换选项卡时将被关闭。没关系:选项卡已经处于活动状态(confirm 对话框出现在页面加载时),我很高兴在切换选项卡时它被关闭。问题是它会立即被解除,没有任何用户交互。

我找到了one similar report,但在这种情况下,confirm 提示从未出现过。看起来我们看到的是不同的东西。

$(document).ready(function() 
var c = confirm('Are you sure you wish to delete this entry?');
if (c) 
    $.ajax(
        '/api/show/competition/delete',
        
            'method': 'POST',
            'data':  'id' : 9 ,
            'dataType': 'json',
            'complete': function(response, status) 
                if (response.responseJSON.error) 
                    alert(response.responseJSON.message);
                    window.location.reload();
                 else 
                    document.location.href = "/show/application/competition";
                
            
        
    );
 else 
    document.location.href = "/show/application/competition/entry/9";

);

如有必要,我们可以使用 jQuery 模态窗口,但使用整个库来替换一行代码似乎很愚蠢。无论如何,原生浏览器警报在移动浏览器中往往看起来更好。

【问题讨论】:

您确定它不是弹出窗口阻止程序或 chrome 阻止它,因为没有触发用户操作来显示提示。 在您的链接中,通过删除一些扩展然后重新启动浏览器解决了问题。你确定这不是这个问题的问题(也许他们有广告拦截器)? 【参考方案1】:

我遇到了完全相同的问题。这似乎是一个铬问题。

这需要一个技巧。 就我而言,它通过使用 setTimeout 函数延迟 0.1 秒来工作。

试试这个。它会起作用的。

function doConfirm() 
  var c = confirm('Are you sure you wish to delete this entry?');
  if (c) 
    $.ajax(
        '/api/show/competition/delete',
        
            'method': 'POST',
            'data':  'id' : 9 ,
            'dataType': 'json',
            'complete': function(response, status) 
                if (response.responseJSON.error) 
                    alert(response.responseJSON.message);
                    window.location.reload();
                 else 
                    document.location.href = "/show/application/competition";
                
            
        
    );
   else 
    document.location.href = "/show/application/competition/entry/9";
  


$(document).ready(function() 
  setTimeout(function() doConfirm() , 100);    
);

【讨论】:

完美解决方案。赞赏。 这个问题是由 iFrame 引起的,这并不总是有效,这取决于 iFrame 加载时间(或者至少我认为是这样),所以它不是一个可行的解决方案。 谢谢。这让我快疯了。我花了半个晚上试图用 DIV 设计一个模态对话框并且讨厌它。我的用例很简单——提醒用户他们需要输入电子邮件地址。但它一直在铬上消失。这个延迟解决了这个问题。 我在这里同意@Silencer。 Chrome 似乎有这个错误很长一段时间了,根据我的理解,当页面/iframe 导航到不同的位置时,chrome 似乎正在关闭任何活动对话框(alertconfirmprompt)没有任何用户交互。由于我们无法确定任何 iframe 的确切加载/导航时间,setTimeout 尽管看起来已经解决了这个问题,但肯定有一天会中断。 (除非我遗漏了什么)【参考方案2】:

就我而言,问题是由 iframe 引起的。我有一个 youtube 视频 iframe,警报会在显示几毫秒后关闭。删除 iframe 后,一切都恢复正常了。

【讨论】:

遇到同样的问题,但我无法移除 iFrame,找不到解决方案。 同样的问题,setTimeout 为我工作了 250 毫秒。【参考方案3】:

在我的情况下,点击事件功能中的确认对话框出现了问题。用“mouseup”替换“click”解决了这个问题。

【讨论】:

【参考方案4】:

就我而言,Facebook Remarketing Pixel 是问题的根源。

【讨论】:

这似乎是页面上 Facebook 和 Twitter iframe 的普遍问题。我们最终放弃并切换到 jQuery 模式。【参考方案5】:

添加超时的一种稍微优雅但有效的方法是包含像underscore.js 这样的库,并将处理程序函数去抖动约100ms。如果您有 iFrame,则可能并非如此,但如果没有 iFrame,这绝对是个问题,这对我来说立竿见影。

$("#my-selector").on("click", _.debounce(handleClick, 100));

【讨论】:

如何在没有任何用户交互的情况下进行服务器到服务器的文件传输?

】如何在没有任何用户交互的情况下进行服务器到服务器的文件传输?【英文标题】:HowToDoaServerToServerFileTransferwithoutanyuserinteraction?【发布时间】:2011-06-2813:53:18【问题描述】:在我的场景中,用户可以将zip文件上传到a.example.co... 查看详情

在没有用户交互的情况下播放波纹动画

】在没有用户交互的情况下播放波纹动画【英文标题】:Playrippleanimationwithoutuserinteraction【发布时间】:2016-12-2402:18:05【问题描述】:我知道我可以将android:background="?android:attr/selectableItemBackground"设置为任何视图,以从Andr... 查看详情

在没有用户交互jquery的情况下播放音频

】在没有用户交互jquery的情况下播放音频【英文标题】:playaudiowithoutuserinteractjquery【发布时间】:2020-03-1720:14:17【问题描述】:我正在构建一个仪表板,用户可以在其中收到新订单的通知(通过声音),所以我希望在不让用户... 查看详情

如何在没有用户交互的情况下禁用 wifi 辅助

】如何在没有用户交互的情况下禁用wifi辅助【英文标题】:howtodisablewifiassistwithoutuserinteraction【发布时间】:2018-04-1012:46:18【问题描述】:我有几个必须通过wifi而非移动数据调用(以编程方式)的URL。当WIFIASSIST开启时,只要wifi... 查看详情

自我更新应用

...3-02-0514:11:35【问题描述】:TL:DR;版本;)我的应用应该在没有用户交互的情况下运行(自动启动等工作)它应该在没有任何用户交互的情况下自行更新(通过apk)root设备是可能的.问题:从服务器查询较新的apk有效使用(查看?... 查看详情

如何在没有任何按钮的情况下以编程方式关闭 UIAlertController?

】如何在没有任何按钮的情况下以编程方式关闭UIAlertController?【英文标题】:HowtoprogrammaticallydismissUIAlertControllerwithoutanybuttons?【发布时间】:2015-08-0613:29:52【问题描述】:我正在展示一个没有任何按钮的UIAlertViewController,因为... 查看详情

在没有用户交互的情况下使用 UISlider

】在没有用户交互的情况下使用UISlider【英文标题】:UseUISliderwithoutuserinteraction【发布时间】:2011-05-2316:20:42【问题描述】:我有一个自定义的UISlider,我想用它来向用户显示信息,但我不希望用户能够与滑块进行交互。我试过... 查看详情

有没有办法在没有用户交互的情况下发送短信?

】有没有办法在没有用户交互的情况下发送短信?【英文标题】:IsthereawaytosendSMSonflutterwithoutuserinteraction?【发布时间】:2019-11-1221:55:21【问题描述】:按下按钮时,我正在尝试从我的颤振应用发送短信。我想在没有用户交互的... 查看详情

Chromecast 在没有任何设备连接的情况下显示网页

】Chromecast在没有任何设备连接的情况下显示网页【英文标题】:Chromecastdisplayswebpagewithoutanydeviceconnectedtoit【发布时间】:2014-04-0214:37:10【问题描述】:我想知道是否有人可以告诉我chromecast是否允许在计算机关闭时通过chrome标签... 查看详情

WiFi-Direct:如何在没有用户干预的情况下以编程方式与对等方连接和交互?

】WiFi-Direct:如何在没有用户干预的情况下以编程方式与对等方连接和交互?【英文标题】:WiFi-Direct:HowtoConnectandinteractwithpeersprogrammaticallywithoutuserintervention?【发布时间】:2012-03-2616:36:33【问题描述】:我们正在尝试构建一个应... 查看详情

java示例代码_在没有任何客户端交互的情况下使用Google+API

java示例代码_在没有任何客户端交互的情况下使用Google+API 查看详情

如何在 React Native 中在没有用户交互的情况下收到通知时打开应用程序

】如何在ReactNative中在没有用户交互的情况下收到通知时打开应用程序【英文标题】:HowtoopenappwhennotificationreceivedwithoutuserinteractionInReactNative【发布时间】:2021-03-2623:58:55【问题描述】:在没有用户交互的情况下收到通知时如何... 查看详情

如何在没有用户交互的情况下启动 Open Camera 应用程序来拍照?

】如何在没有用户交互的情况下启动OpenCamera应用程序来拍照?【英文标题】:HowdoIlaunchtheOpenCameraapptotakeapicturewithoutuserinteraction?【发布时间】:2020-11-0316:53:15【问题描述】:我正在尝试启动OpenCameraAndroid应用以在没有用户交互的... 查看详情

如何在没有用户交互的情况下在后台接收 iOS 通知

】如何在没有用户交互的情况下在后台接收iOS通知【英文标题】:HowtoreceiveiOSnotificationsinbackgroundwithoutuserinteraction【发布时间】:2017-08-1705:40:00【问题描述】:我使用以下方法在AppDelegate中接收通知。当用户在前台时,通知按预... 查看详情

如何在没有用户交互的情况下使用 YouTube 数据 API?

】如何在没有用户交互的情况下使用YouTube数据API?【英文标题】:HowtouseYouTubedataapiwithoutuserinteraction?【发布时间】:2016-03-0823:16:22【问题描述】:我目前正在开发一个服务器端Web应用程序,它需要将服务器上的视频上传到多个Yo... 查看详情

WebRTC 是不是会在没有用户交互的情况下泄露您的真实 IP?

】WebRTC是不是会在没有用户交互的情况下泄露您的真实IP?【英文标题】:DoesWebRTCLeakYourRealIPwithoutUserInteraction?WebRTC是否会在没有用户交互的情况下泄露您的真实IP?【发布时间】:2021-12-2606:55:38【问题描述】:在***上已经多次讨... 查看详情

如何在没有来自另一个应用程序的用户交互的情况下发送邮件[重复]

】如何在没有来自另一个应用程序的用户交互的情况下发送邮件[重复]【英文标题】:Howtosendmailwithoutuserinteractionfromanotherapplication[duplicate]【发布时间】:2012-05-0401:33:23【问题描述】:可能重复:SendingEmailinAndroidusingJavaMailAPIwithout... 查看详情

在没有身份验证的情况下在 facebook 上发布(与用户交互)

】在没有身份验证的情况下在facebook上发布(与用户交互)【英文标题】:Publishonfacebookwithoutauth(withuserinteraction)【发布时间】:2012-03-1516:06:10【问题描述】:我正在尝试做一些似乎并不难的事情,但我就是找不到实现它的方法。... 查看详情