Всем привет, кастомизирую одну вещицу, скрипты пишу на JQUERY, но недавно столкнулся со следующей проблемой.
Вот часть кода, реализующего механизм подсказок:
g_myDialog_modal = $('<div title="Подсказка."></div>').dialog({
autoOpen: false,
position: "center",
modal: true,
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
},
hide: "explode",
open: function(){
$('.ui-widget-overlay').bind('click',function(){
g_myDialog_modal.dialog('close');
})
}
});
$(el).bind('click',function(tlink){
return function(){
$.get(tlink, function(data, textStatus, jqXHR){
var ease_html = data;
var ease_txt = $(ease_html).children().html();
if(ease_txt!='Нет описания'){
if ($(ease_html).children('detail').html()==null){
var tmp_hint='';
}else{
var tmp_hint= '<br><hr align="center" size="2" color="#0000dd" /><br>'+'<div>'+$(ease_html).children('detail').html()+'</div>'
}
var rez_hint = $(ease_html).children('description').html()+tmp_hint;
g_myDialog_modal.html(rez_hint).dialog('open');
}
});
}
}(location.protocol+'//'+location.host+($(location).attr('pathname').split('.do')[0].split('/').slice(0,-1).toString().replace(new RegExp(",",'g'),"/"))+'/service.do?name='+name+'&Form='+form+'&Field='+field[i]))
Принцип работы следующий:
Рядом с определёнными полями есть значки вопроса, при щелчке на которые происходит запрос на сервер с переменной, которая хранится в атрибутах поля следующего вида :
http://192.168.102.197:8080/webtier/service.do?name=helpInfo&Form=FilterAdvFind&Field=instance/id
в ответ приходит следующий код:
<html>
<head>
</head>
<body>
<helpinfo>
<description>
Уникальный идентификатор конфигурационной единицы
</description>
</helpinfo>
</body><link rel="stylesheet" type="text/css" href="data:text/css,"></html>
причём часть тегов не всегда есть. К примеру, подсказка может быть расширенная и т.д.
var ease_html = data; - в переменную записывается
код ответа, тоесть
<helpInfo><Description>Уникальный идентификатор конфигурационной единицы </Description></helpInfo>
посколку в запросе стоит параметр HTML - то ease_html должен быть объектом.
GH/Firefox/Opera слудеющий код обрабатывают верно:
var ease_txt = $(ease_html).children().html();
Для IE (7-9) ease_html является переменной типа String и, соответственно children() выдаёт null есть ли способ преобразовать СТринговую переменную в элемент? Или что вы посоветуете сделать?
http://clip2net.com/s/1IEfG вот что в переменной в IE
http://clip2net.com/s/1IEhg Тем не менее $(ease_html) имеет дочерние элементы
http://clip2net.com/s/1IEhg
тоесть $(ease_html)[2] обратиться можно
http://clip2net.com/s/1IEjs
а $(ease_html).children('detail') или $(ease_html).children().eq(2) выдаёт null(
Возможно нужна какая то информация - я отвечу. Буду рад любой подсказке.
Спасибо!