Проверьте, видно ли пользователю изображение, которое я собираюсь получить с помощью кода, или нет
Ограничения :
Простой javascript - не предлагайте jQuery или другие фреймворки
Меня интересуют только display:none
и visibility:hidden
, но непрозрачность и так далее, конечно, приветствуется
Код: ниже (взято из здесь ) не работает в моем DEMO
Вопрос: Можете ли вы помочь заставить либо работать, либо предложить лучший сценарий?
Версия A
function isVisible(obj){
if (obj == document) return true;
if (!obj) return false;
if (!obj.parentNode) return false;
if (obj.style) {
if (obj.style.display == 'none' || obj.style.visibility == 'hidden') return false;
}
else if (window.getComputedStyle) { // MY BAD - I PUT THE INCORRECT ELSE HERE
var style = window.getComputedStyle(obj, "");
if (style.display == 'none' || style.visibility == 'hidden') return false;
}
else if (obj.currentStyle) {
var style = obj.currentStyle;
if (style['display'] == 'none' || style['visibility'] == 'hidden') return false;
}
return isVisible(obj.parentNode);
}
Версия B
function isVisible1(obj) {
var cnode = obj;
try {
while(cnode) {
if (cnode.nodeName) {
if (cnode.nodeName.toLowerCase()=="body") {
return true;
}
}
if (cnode.style.display=="none" || cnode.style.visibility=="hidden") {
return false;
}
cnode = cnode.parentNode;
}
return true;
}
catch(ex) {return false;}
}