(Пожалуйста, не спрашивайте, почему мы поддерживаем ie6.)
Мы создаем пользовательские предупреждения / подтверждения с помощью модального диалога jQuery. Я создал div с помощью xsl (в примерах я вынул часть xsl и поместил в raw html, чтобы избежать путаницы). Div запускается с помощью jQuery. Я написал пару функций (которые по существу открывают диалог, передают сообщение и функцию), чтобы мы могли реализовать новое оповещение / подтверждение, используя javascript (по сути, заменяя alert (); на uiAlertError ();).
Часть этой информации не важна. Я могу получить более конкретную информацию, но главная проблема заключается в том, что в ie6 я получаю сообщение «Эта страница содержит как безопасные, так и незащищенные элементы. Хотите ли вы отображать незащищенные элементы?» ошибка. В ie7, ie8, firefox, safari и chrome все работает правильно.
Из того, что я прочитал, есть некоторые распространенные проблемы, такие как: http: // необходимо быть https: // (или http: // to //, изменить на относительное, а не на абсолютное), 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.
Эта страница не является общедоступной.
Спасибо за помощь!
Tony