2013-10-21 5 views
18

में IE11 के साथ ठीक से काम नहीं करता है यदि आप टेबल पर पेजर एड के साथ टेबल्सटर Jquery प्लगइन का उपयोग कर रहे हैं तो कोई भी डेटा प्रदर्शित नहीं होगा। डेटा वहां है लेकिन यह छिपा हुआ है।JQuery टेबलटर पेजर प्लगइन एज मोड

मुझे संदेह है कि प्लगइन की ब्राउज़र सुविधा पहचान विधि IE11 को संभाल नहीं सकती है।

कोई और इसमें भाग लेता है?

उत्तर

27

ऐसा लगता है कि IE11 उसकी userAgent साथ एक समस्या है। एक बदलाव clearTableBody समारोह (jquery.tablesorter-2.0.3.js में काम कर) इस तरह बदलने के लिए है:

this.clearTableBody = function (table) { 
    //if ($.browser.msie) { 
     function empty() { 
      while (this.firstChild) this.removeChild(this.firstChild); 
     } 
     empty.apply(table.tBodies[0]); 
    //} else { 
    // table.tBodies[0].innerHTML = ""; 
    //} 
}; 
+0

यह मेरे लिए काम नहीं कर रहा है ... :( –

+0

बग को कुचल दिया! +1 महोदय। – Bosworth99

20

यह एक उपयोगकर्ता एजेंट स्ट्रिंग जो ऐसा नहीं करता होने Internet Explorer 11 के कारण एक तरह से है "एमएसआईई" शामिल करें, इसलिए jQuery इसे ठीक से पहचान नहीं करता है (this question देखें)।

लेकिन वास्तव में, TableSorter पेजर कोड को यह जानने की आवश्यकता नहीं है कि कौन सा ब्राउज़र कोड चला रहा है। jQuery के क्रॉस-ब्राउज़र कार्यान्वयन का लाभ उठाने के बजाय समारोह clearTableBody परिवर्तन:

this.clearTableBody = function(table) { 
    $(table.tBodies[0]).empty(); 
}; 

मैं IE8, IE9, IE11, क्रोम 31 और Firefox में इस परीक्षण किया है 24.

(और अभी-अभी, मैं एक GitHub पाया TableSorter का एक कांटा कि संभवतः यह पहले से ही तय किया है के साथ रेपो: https://github.com/Mottie/tablesorter)

0

एक साधारण soltion - if($.browser.msie) से करने के लिए jquery.tablesorter.js में लाइन बदलने के लिए:

if(/msie/.test(navigator.userAgent.toLowerCase()) || window.navigator.userAgent.indexOf("Trident/7.0") > 0) मेरे लिए काम करता है।

/msie/.test(navigator.userAgent.toLowerCase()) आईई संस्करण 10 या उससे नीचे का पता लगाता है। window.navigator.userAgent.indexOf("Trident/7.0") > 0 आईई 11 का पता लगाता है।

संबंधित मुद्दे