У меня есть скрипт, запускаемый в документе, который может быть или не быть вложенным в iframe. Я разобрался с проблемой обнаружения вложенных, но не могу понять, как определить состояние готовности DOM, когда это iframe.
Вот что у меня уже есть:
if (window.self !== window.top) {
// is nested
// DOM ready test here
// execute code here
} else {
// is not nested
$(document).ready(function() {
// execute code here
});
}
Я уже прочитал этот пост , но не вижу ответа на свой конкретный вопрос. Возможно, я неправильно понимаю решения, поэтому поправьте меня.
EDIT:
Кажется, это проблема Fancybox. Этот код:
alert(document.getElementById('username').className);
document.getElementById('username').focus();
Я вижу предупреждение с правильным значением, но элемент формы не получает фокус. Это говорит мне, что это не проблема с определением состояния готовности DOM. Оригинальный скрипт, который я пытался использовать, был таким:
$(document).ready(function() {
$('input.focus:last').focus();
});
РЕДАКТИРОВАТЬ 2 / РЕШЕНИЕ:
Мне пришлось прибегнуть к конкретному решению Fancybox, потому что, похоже, это особая проблема Fancybox. Я добавил эту строку в конфигурацию для этих форм Fancybox iframed:
'onComplete':function(){$('input.focus:last').focus();}