Базовая функция поиска jQuery займет область в качестве второго параметра. По умолчанию используется текущий документ, но вы можете указать другой документ для поиска по границам iframe. Я сделал это для предыдущего проекта; это может быть не совсем то, что вы ищете, но, надеюсь, содержит некоторые подсказки.
С в плавающем фрейме вы можете получить доступ к документу в верхнем окне, как это:
$('#iframe2', top.document)
Это звучит, как вы хотите, чтобы определить, в каком IFrame имели место события щелчка, не так ли? Я не знаю точно, как это сделать, так как у меня был только один
Для бонусной удовольствия, вот мой обработчик событий для изменения размера элемента Iframe в родительском документ на основе размера Iframe документа:
$(document).bind('ResultsFrameSizeChanged:hybernaut', function(event){
var iframe = $('#results', top.document)[0];
if(iframe.contentDocument){ // IE
var height = iframe.contentDocument.body.offsetHeight + 35;
} else {
var height = iframe.contentWindow.document.body.scrollHeight;
}
// konsole.log("Setting iframe height to " + height);
$(iframe).css('height', height);
});
Вы затем вызвать, что пользовательское событие на события, которые могут изменить высоту документа (например, АЯКС загрузка):
$(top.document).trigger('ResultsFrameSizeChanged:hybernaut');
Сначала я был обязательным, что событие $ («IFrame») готов(). но это было непоследовательно в браузерах, и я оказался триггером g из нескольких мест в обработчиках завершения ajax.
Еще одно важное замечание: если вы загружаете jQuery в свои фреймы, у вас есть несколько отдельных экземпляров jQuery, и многие из ваших предположений о том, как работает jQuery, больше не верны (что сейчас глобально?). Это может быть очень сложно.Я не уверен, но я считаю, что если вы используете события с именами и запускаете их на конкретном документе (т. Е. Top.document), тогда они будут обрабатываться в правильном контексте.
Как вы обходились * Небезопасная попытка JavaScript получить доступ к фрейму с URL-адресом ... Домены, протоколы и порты должны соответствовать *? – Josh