Разница между документами.скрытый документ против.hasFocus()
Пожалуйста, объясните разницу между document.hidden
, API видимости страницы HTML5 и document.hasFocus()
. Я делаю проект, который соз HTML5 Desktop Notification
когда вкладка не сфокусирована . Я запутался, какой из них использовать.
1 ответов
на hidden
атрибут определяется следующим образом:
на получение, в
hidden
атрибут должен возвращать true, если документ содержащийся в контекст просмотра верхнего уровня (корень окно в окне просмотра браузера) не отображается вообще. Атрибут Должен возвращать false, если документ содержащийся в верхний уровень контекст просмотра по крайней мере, частично видимый по крайней мере на одном экран.если defaultView на документ равно null, при получении,
hidden
атрибут должен возвращать true.
на hasFocus
метод определяется следующим образом
на
hasFocus()
метод onDocument
объекты должны возвращать true, если theDocument
' s просмотр контексте ориентирован, и все свой контекст просмотра предков также сосредоточены, и топ-уровня контекст просмотра имеет система фокусировки. ЕслиDocument
нет просмотр контексте или если его просмотр контексте нет контекст просмотра верхнего уровня, тогда метод будет всегда возвращаться ложный.
например, если открыть страницу на вкладке переднего плана, а затем открыть другое окно, вкладка будет (или может) по-прежнему частично видна, поэтому hidden
возвращает false. Однако новое окно имеет фокус, поэтому hasFocus()
возвращает false для вкладки.
если вы запустите следующий фрагмент, документ внутри iframe будет виден, но не будет иметь фокуса (вместо этого эта страница stackoverflow сфокусирована):
document.body.innerHTML =
'<p>hidden: ' + document.hidden + '</p>' +
'<p>hasFocus: ' + document.hasFocus() + '</p>';
но в этом другом, так как вы нажимаете кнопку внутри iframe, она одновременно видна и сосредоточился:
document.getElementsByTagName('input')[0].onclick = function() {
document.body.innerHTML =
'<p>hidden: ' + document.hidden + '</p>' +
'<p>hasFocus: ' + document.hasFocus() + '</p>';
};
<input type="button" value="Click me!" />