以下是我的 HTML 页面中的编码:
<input onclick="return confirm('Delete Record?')"
type="submit" value="Delete" name="Delete">
Google Chrome ver38 中删除功能可以使用,但没有弹出“删除记录?”。
删除功能正常,弹出“删除记录?”在 Internet Explorer 中。
这个问题有什么解决办法吗?
尝试不使用“返回”,如下所示:
<input onclick="confirm('Delete Record?')" type="submit" value="Delete" name="Delete">
return 关键字在不同浏览器中的行为并不总是一致。
我曾经像你一样写它(作为一个内联 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;
}
});