2010-06-11 9 views
0

텍스트가 아닌 html로 내보내려면 var long이 필요합니다. 나는 .text()를 가지고 있지만 .html()을 사용할 때 작동하지 않는다는 것을 안다. 또한 변수를 선언 할 때 .text()를 사용하면 IE에서 작동하지 않습니다.jquery XML .html()이 아니라 .text()가 필요하지만 작동하지 않습니까?

그 이유는 XML에 특정 단어가 또는 같은 HTML 태그가하고 나는 그 인식 될 필요합니다. 나는 .text()를 꺼낼 때 그것을 해결할 수 있다고 생각했지만, IE는 보았고 아무 것도 얻지 못했습니다.

$(document).ready(function(){ 
$.ajax({ 
type: "GET", 
url: "xml/sites.xml", 
dataType: "xml", 
success: function(xml) { 
$(xml).find('site').each(function(){ 
    var id = $(this).attr('id'); 
    var title = $(this).find('title').text(); 
    var class =$(this).find('class').text(); 
    $('<div class="'+class+'" id="link_'+id+'"></div>').html('<h2>'+title+'</h2>').appendTo('#page-wrap'); 
    $(this).find('desc').each(function(){ 
    var long = $(this).find('long'); 
    var url = $(this).find('url').text(); 
    $('<div class="long"></div>').html(long).appendTo('#link_'+id); 
    $('<a href="http://'+url+'"</a>').html(url).appendTo('#link_'+id); 
    }); 
}); 
} 
}); 
});// JavaScript Document 
+1

대신 JSON을 사용하십시오 :) –

+0

'.find()'호출이 IE에서 작동합니까? 나는 조쉬와 동의한다. 가능한 경우 XML 대신 JSON을 사용하십시오. 그렇게하면 감미롭고 달콤한 자바 스크립트로 작업 할 수 있습니다. – user113716

답변

1

나는 비슷한 문제를 가지고 내가 전화 아약스 기능하기 전에 솔루션 ..., 어떤 브라우저 확인하고 그 다음에 따라 콘텐츠 형식의 VAR 정의를 발견 .... 추가 수행이 녹 석영 기능 Microsoft 표준 및 아약스에 따라 브라우저의 나머지 부분에 대한 코드 ... 잘 IE10은 xml 콘텐츠 형식과 호환됩니다. 여기에 완전한 코드가 있습니다 ... 나는 IE 7까지 테스트했으며 완벽하게 작동합니다. 귀하의 질문에 대답 ...

(function ($) { 

    $.fn.myplugin = function (CP_ID) { 

    var selected_dataType = ""; 

    if (currentBrowser().browser == "IE" && currentBrowser().version < 10) { 

     selected_dataType = "text"; 
    } 
    else { 
     selected_dataType = "xml"; 
    } 

    $.ajax({ 
    type: "GET", 
    url: "XML_file.xml", 
    dataType: selected_dataType, 
    success: function (xml) { 

     var processedXML_01 = parseXml(xml); 

     $(processedXML_01).find('myRecord').each(function() { 
       //process you code// 
     }); 
     }, 
    error: function() { 
     alert("An error occurred while processing XML file."); 
    } 
    }); 

    } //end plugin function 

    })(jQuery); 


    function parseXml(xml) { 

    if (currentBrowser().browser == "IE") { 

    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } 
    else {// code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.open("GET", "XML_file.xml", false); 
    xmlhttp.send(); 
    xmlDoc = xmlhttp.responseXML; 

    xml = xmlDoc; 
    } 
     return xml; 
    } 


function currentBrowser() { 

$.returnVal = ""; 

var browserUserAgent = navigator.userAgent; 

if (browserUserAgent.indexOf("Firefox") > -1) { 

    $.returnVal = { browser: "Firefox" }; 
} 

else if (browserUserAgent.indexOf("Chrome") > -1) { 

    $.returnVal = { browser: "Chrome" }; 
} 

else if (browserUserAgent.indexOf("Safari") > -1) { 

    $.returnVal = { browser: "Safari" }; 
} 

else if (browserUserAgent.indexOf("MSIE") > -1) { 

    var splitUserAgent = browserUserAgent.split(";"); 

    for (var val in splitUserAgent) { 

     if (splitUserAgent[val].match("MSIE")) { 

      var IEVersion = parseInt(splitUserAgent[val].substr(5, splitUserAgent[val].length)); 
     } 
    } 

    $.returnVal = { browser: "IE", version: IEVersion }; 
} 

else if (browserUserAgent.indexOf("Opera") > -1) { 

    $.returnVal = { browser: "Opera" }; 
} 

else { 
    $.returnVal = 
    { browser: "other" }; 
} 

return $.returnVal; 
} 
관련 문제