У меня есть страница с двумя кадрами, и мне удалось ответить на перезагрузки одного из этих фреймов. В обработчике для перезагрузки я пытаюсь выбрать элемент во вновь загруженном фрейме с помощью jQuery, например:
$("frame[name=WorkArea]").on("load", function () {
console.log("Reloaded work area."); //this works fine
alert($("tr.hdr", "frame[name=WorkArea]").html());
});
В поле предупреждения указано "undefined". Когда я экспериментирую на консоли, чтобы "выбрать все",
$("*", "frame[Name=WorkArea]")
отображается только один элемент: необработанный html кадра.
Поэтому в основном я не могу выбрать что-либо внутри рамки. Похоже, DOM еще не сконструирован для содержимого HTML фрейма (?) Что мне не хватает?
PS Не уверен, что это актуально, но оно находится в сценарии инъецированного контента для расширения Chrome.
Попробуй это,
$("frame[name=WorkArea]").on("load", function () {
console.log("Reloaded work area."); //this works fine
alert($(this).contents().find('tr.hdr').html()); // use this and find() here
});
contents()
прежде чем find()
смотри мой обновленный ответ
Попробуйте с .find()
в jquery
$("*").find("frame[name=WorkArea]").html();
или
$(document).find("frame[name=WorkArea]").html();