onclick =“返回确认('')”在谷歌浏览器中不起作用

问题描述 投票:0回答:2

以下是我的 HTML 页面中的编码:

    <input onclick="return  confirm('Delete Record?')"
        type="submit" value="Delete" name="Delete">

Google Chrome ver38 中删除功能可以使用,但没有弹出“删除记录?”。

删除功能正常,弹出“删除记录?”在 Internet Explorer 中。

这个问题有什么解决办法吗?

javascript html
2个回答
0
投票

尝试不使用“返回”,如下所示:

<input onclick="confirm('Delete Record?')" type="submit" value="Delete" name="Delete">

return 关键字在不同浏览器中的行为并不总是一致。


0
投票

我曾经像你一样写它(作为一个内联 onclick 属性返回确认),它非常方便,我所有的旧应用程序都是这样的,但由于某种原因 Chrome 不再喜欢它了,(有时它会第一次随机工作)然后不是)但我把它写在由事件处理程序触发的脚本标记中,现在它工作得很好。我认为这是一个安全问题,因为它不是正确的 javascript,他们决定不支持可用作 XSS 攻击等的 JavaScript。

这样的东西有效:

var deleteLinks = document.querySelectorAll('.confirm');

for (var i = 0; i < deleteLinks.length; i++) {
  deleteLinks[i].addEventListener('click', function(event) {
      event.preventDefault();

      var choice = confirm(this.getAttribute('data-confirm'));

      if (choice) {
        window.location.href = this.getAttribute('href');
      }
  });
}

或者就我而言,我使用 jQuery:

$('.confirm').click(function (e) {
    e.preventDefault();
    var url = jQuery(this).attr('href');
    var title = jQuery(this).attr('title');
    var message = 'Are you sure you want to ' + title + '?';
    var confirm = window.confirm(message, title);
    if (confirm) {
        window.location.href = url;
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.