(请不要理会我们为什么支持ie6。)
我们正在使用jQuery模式对话框创建自定义警报/确认。我用xsl创建了一个div(在示例中,我将一些xsl输出并放入原始html以避免混淆)。 div使用jQuery触发。我编写了几个函数(基本上打开对话框,传递消息和函数),这样我们就可以使用javascript实现新的alert / confirm(基本上替换alert();使用uiAlertError();)。
其中一些信息并不重要。我可以更具体,但这里的主要问题是在ie6中我得到一个“此页面包含安全和非安全项目,你想显示不安全的项目吗?”错误。一切都在ie7,ie8,firefox,safari和chrome中正常工作。
从我读过的有一些常见的问题,例如:http://需要是https://(或http://到//,改为相对于绝对),src是空的所有这些(从我收集的内容)的基本主题是让事情加载安全,因为我们在一个安全的页面上。但这不是我的问题!
我已经将问题分解为与jQuery有关的事情(我测试了新代码;得到了错误。将新代码注释掉;错误消失了。我取消注释了xsl,但是留下了jQuery注释掉了;错误仍然消失。回过头来评论jQuery,错误又回来了。)
这是javascript:
以下是我为替换alert()而编写的函数; :
function uiAlertError(msg, ok_func){
document.getElementById('alert_id_img').src="images/dialog_warning.png";
uiAlert(msg, ok_func);
}
function uiAlertCheck(msg, ok_func){
document.getElementById('alert_id_img').src="images/dialog_check.png";
uiAlert(msg, ok_func);
}
function uiAlert(msg, ok_func){
document.getElementById('alert_id_msg').innerHTML = msg;
$("#alert_id").dialog("open");
$("#alert_ok").click(function(){
if(ok_func == undefined || ok_func == ''){
$("#alert_id").dialog("close");
}else{
eval(ok_func);
$("#alert_id").dialog("close");
}
});
}
这是jQuery:
$(function() {
$("#alert_id").dialog( "destroy" );
$("#alert_id").dialog({
width: 325,
modal: true,
resizable: false,
draggable: false,
minHeight: 90,
autoOpen: false
});
});
我确定它与我的jQuery实现或jQuery本身有关。
此页面未公开托管。
感谢您的帮助! 贝
答案 0 :(得分:0)
我在IE6上使用jquery和xslt + ajax时遇到同样的问题。
问题在于破坏。在销毁之前发出警报(1)并在其之后发出警报(2),您将看到混合安全发生在它之间。
在我的代码中,它看起来像这样:
$("#box").dialog("close");
alert(1);
$("#box").dialog('destroy').remove();
alert(2);
我仍然在寻找一种更好的处理对话框的方法,因为我使用的是ajax,页面会保留#box,如果没有正确处理,你会有2个#box实例。
答案 1 :(得分:0)
我认为问题与我的one in another question一样 - jQuery UI 1.8 CSS中存在一个错误:
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;
/* http://bugs.jqueryui.com/ticket/7233
- Resizable: resizable handles fail to work in IE if transparent and content overlaps
*/
background-image:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=);
}
IE6和7不仅不支持数据URI,而且任何此类基本64字符串都被IE视为非安全资源。
将此行替换为:
background-image:url(blank.gif);
blank.gif
是1x1透明GIF且错误已修复!
它看起来像jQuery UI人are aware of the issue,并且已在1.9及更高版本中修复。