Существует три возможных способа получения вашего кода cssLoaded == 0;
if (cssStylesheet.href == stylePath)
оценивается как false
. - Все три оператора
if/else
оцениваются как false
. - Один из операторов
if/else
вызывает исключение, и поэтому другие операторы if/else
не выполняются.
При устранении неполадок, связанных с вашей проблемой, вы должны убедиться, чтопервые два не являются проблемой, так как это, вероятно, просто логические ошибки в сравнениях, или данные, поступающие в функцию, не соответствуют ожидаемым.
Для третьего вопроса вы можете реализовать защитное кодирование дляубедитесь, что все три оператора if/else
проверены путем изменения вашего кода на это (вам даже не нужно больше пытаться / ловить, потому что это позволяет вашему коду обходить некоторые тесты):
function _cssIsLoaded(cssStylesheet, stylePath) {
var cssLoaded = 0;
if (tryCount == 3){
console.log('oops');
}
if (cssStylesheet && cssStylesheet.href == stylePath) {
if ( cssStylesheet.sheet && cssStylesheet.sheet.cssRules && cssStylesheet.sheet.cssRules.length > 0 ) {
cssLoaded = 1;
}
else if ( cssStylesheet.styleSheet && cssStylesheet.styleSheet.cssText && cssStylesheet.styleSheet.cssText.length > 0 ) {
cssLoaded = 1;
}
else if ( cssStylesheet.innerHTML && cssStylesheet.innerHTML.length > 0 ) {
cssLoaded = 1;
}
}
if(cssLoaded) {
//alert('cssloadedcomplete');
resetPops();
$('#video-overlay').show();
positionElements();
saveBizzmail();
console.log('try:' + tryCount)
} else {
tryCount+=1;
console.log('try:' + tryCount);
setTimeout(function() { this._cssIsLoaded(cssStylesheet); }, 2000);
}
}