एनबी: यह उत्तर डेटाटेबल्स 1.9.x पर लागू होता है!
$.fn.dataTableExt.sErrMode
के लिए केवल एक ही मूल्य है "चेतावनी" कोई महत्व है। यह "चेतावनी" या कुछ और है। sErrMode
आंतरिक डिस्पैचर समारोह _fnLog
द्वारा media/js/jquery.dataTables.js
में लाइन 4575 के बारे में v1.9.2 में, नियंत्रित किया जाता है:
function _fnLog(oSettings, iLevel, sMesg)
{
var sAlert = (oSettings===null) ?
"DataTables warning: "+sMesg :
"DataTables warning (table id = '"+oSettings.sTableId+"'): "+sMesg;
if (iLevel === 0)
{
if (DataTable.ext.sErrMode == 'alert')
{
alert(sAlert);
}
else
{
throw new Error(sAlert);
}
return;
}
else if (window.console && console.log)
{
console.log(sAlert);
}
}
Unfortunelaty, वहाँ DataTables आंतरिक कार्यों ओवरराइड करने के लिए कोई रास्ता नहीं है, मुझे विश्वास है - मैं कोशिश की है, प्रोटोटाइप के साथ संभव नहीं या फिर कुछ और। आपको लगता है कि here लेखक एलन Jardines अपनी टिप्पणी पढ़ सकते हैं:
कैसे DataTables पल में निर्माण किया है की वजह से मुझे लगता है कि कहने के लिए माफी चाहता हूँ, इसके बारे में बाहर जावास्क्रिप्ट का उपयोग करते हुए एक आंतरिक समारोह ओवरराइड करने के लिए संभव नहीं है डेटाटेबल्स स्कोप। यह कुछ संबोधित किया जाएगा कि जब भी मैं 2.x श्रृंखला कर रही करने के लिए चारों ओर हो रही है (जो बंद थोड़ी देर हो सकती है!) - लेकिन वर्तमान में आप कोर को बदलने के लिए की आवश्यकता होगी। अरे, शायद iLevel-झंडा सेटिंग्स में कहीं बदला जा सकता है:
एक यह है कि लगता है कि हो सकता है? फिर, दुर्भाग्य से नहीं। iLevel
प्रत्येक आंतरिक कॉल में _fnLog
पर हार्डकोड किया गया है।
यह किसी भी तरह निराशाजनक है हम, बदसूरत सचेतक और पूरी तरह से निष्पादन के पड़ाव के बीच चयन करने के लिए क्योंकि एक त्रुटि फेंक दिया जाता है की है। window.onerror
का एक ओवरराइड या तो काम नहीं करता है। समाधान _fnLog
संशोधित करने, बस लाइन जहां कस्टम त्रुटि फेंक दिया जाता है बाहर टिप्पणी करने के लिए है:
else
{
// throw new Error(sAlert); <-- comment this line
}
और निष्पादन जारी है अगर आपके पास $.fn.dataTableExt.sErrMode = 'throw'
(कुछ और लेकिन "चेतावनी") और यदि त्रुटियों होता है। और भी बेहतर, एक, अन्य स्थितियों में उन फेंक दिया त्रुटियों की जरूरत सकता है
window.isDebugging = true;
और
else
{
if (!window.isDebugging) throw new Error(sAlert);
}
यह नहीं है एक "हैक" मेरी राय में की तरह बाहर एक ध्वज सेट,, लेकिन एक सामान्य की overruling टिकाऊ jQuery डेटा नहीं व्यवहार व्यवहार जो कभी-कभी संतोषजनक नहीं होता है।जैसा कि एलन जार्डिन स्वयं उपरोक्त लिंक में लिखते हैं:
आप स्रोत को संशोधित क्यों नहीं कर सकते? यही कारण है कि :-)
सबसे अच्छा समाधान हमेशा डेटाटेबल्स को दी गई जानकारी को सत्यापित करना होगा ताकि उसे फेंकने की कोई चेतावनी न हो ... – KRyan
उस एक्सटेंशन ने मेरे लिए कुछ भी नहीं किया ... क्या आपको कभी जवाब मिला यह प्रश्न? –
इस पर कोई समाधान? मुझे भी एक ही समस्या का सामना करना पड़ रहा है ... धन्यवाद – Wangchao0721