Jquery消息在IE8上工作,但在IE9上不工作
Jquery Message working on IE 8 and not working on IE9
代码隐藏,VB.Net
btnNext.Attributes.Add("onclick", "Confirmation(this,'" + GetLocalResourceObject("msg").ToString() + "')")
.ASPX页面
function Confirmation(source, msg) {
$(source).easyconfirm({ locale: { title: 'Confirm', text: msg} });
$(source).click(function() {
var result = $(source).attr('tag');
$('#<%=hidField.ClientID%>').val(result);
});
}
Jquery版本jquery-1.4.4.min.jsjquery-ui-1.8.7.min.js
除此之外,我使用jquery.easy-confirm-dialog来显示此消息框[是/否]。jquery.easy-confirm-dialog:http://www.projectshadowlight.org/jquery-easy-confirm-dialog/
hidField:参考上方的asp页面代码
在IE 8:显示消息框,它会根据我单击的内容将我带到相应的页面。[是/否]hidField用于后面的代码中,以获得是/否响应并显示相应的页面。这在IE8 中非常有效
在IE 9上:消息框不会被显示,它会将我带到一个页面,就好像我单击了"否"一样。hidField值为零表示否。因此,如果没有设置任何值,它会认为我单击了否,并为其执行代码。
我在IE9上调试了它,我发现消息会显示[仅在调试时],但它不会停止代码的执行,等待用户响应,然后继续。它在显示消息时继续执行[调试模式,所以我可以看到它]。由于hidField的默认值为0,因此重定向到相应的页面。
任何可能发生这种情况的建议/原因。除了我上面提到的以外,还有其他原因吗?任何可能的解决方案
更多信息:我在IE8上运行了Profiler[F12 IE],消息框一出现就停止了它,它显示调用了event.stopImmediatePropagation。
在IE9上时,event.stopImmediatePropagation不是探查器中的。我进行了调试,在jquery.easy-confirm-dialog.js文件中IE9 event.stopImmediatePropagation不可用,显示为未定义。
我添加了Jquery的更新版本,从1.8.2[之前的1.4.4]开始,但问题仍然是它们。
我不知道你为什么会遇到这个问题,我已经在http://www.projectshadowlight.org/jquery-easy-confirm-dialog/与IE9合作,他们的工作如预期。然而,您对插件的使用有点奇怪,当与jQuery绑定的事件一起使用时,轻松确认对话框会发挥其魔力。不像您的例子中那样直接从点击事件调用。我建议将您的所有逻辑移动到一个jQuery绑定事件中,如下所示(伪代码)
btnNext.Attributes.Add("class", "confirmation");
btnNext.Attributes.Add("title", GetLocalResourceObject("msg").ToString());
把它放在你的头的某个脚本标签中
$(".confirmation").easyconfirm();
$(".confirmation").click(function() {
var result = $(this).attr('tag');
$('#<%=hidField.ClientID%>').val(result);
});
或者创建一个显示确认对话框的自定义功能
function Confirmation(source, msg) {
var dialog = '<div class="dialog confirm">' + msg + '</div>';
var buttons = {};
buttons['Yes'] = function() {
$(this).dialog('close');
var result = $(source).attr('tag');
$('#<%=hidField.ClientID%>').val(result);
};
buttons['No'] = function() {
$(this).dialog('close');
};
$(dialog).dialog({
autoOpen: true,
resizable: false,
draggable: true,
closeOnEscape: true,
width: 'auto',
buttons: buttons,
title: 'Are you sure?',
modal: true,
});
}
- JavaScript获胜't运行,但在jsFiddle中工作
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- appendChild在函数外部工作,但在函数内部不工作
- 为什么这个jQuery可以作为一个小提琴工作,但在我的网页上没有
- Var工作,但在使用数组执行相同操作时停止
- jQuery REST会话没有'不工作,但在POSTMan工作
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- 引导程序's的javascript在本地工作,但在部署到服务器时不能工作
- javascript代码,用于删除firefox中的空白,但在IE和chrome中无法正常工作
- 无法从IE中的data.responseText获取结果,但在其他浏览器中工作
- 复杂选择器在jQuery 1.8中中断,但在1.7.2中工作
- 意思是.js - 登录后重定向用户 - 在本地工作,但在部署时不起作用
- 火狐中的多个问题,但在 chrome 中工作正常,没有一个问题
- jQuery选择器在脚本中不起作用,但在控制台中工作
- 在键上验证正在工作,但在按键时它不起作用
- blur() 无法以编程方式工作 |但在从用户启动时会这样做
- 在暂存服务器中工作但在生产中失败的无效 URL
- 使用angular-google-maps指令在“grunt服务”期间工作.但在默认的grunt任务期间不会
- 将子项链接到在Chrome中工作但在Internet Explorer中不工作的按钮
- Blob createObjectURL下载在Firefox中不工作(但在调试时工作)