Я успешно создал фрагмент кода, который принимает массив CSV, и через IFRAME перетащите текст в панель поиска Википедии и нажмите кнопку поиска. К сожалению, после загрузки я больше не могу ориентироваться на контент IFRAME. Я также вложил два обработчика событий загрузки с намерением дождаться завершения загрузки каждой страницы.
У меня установлены обработчики для отмены привязки / выключения после запуска, и это, кажется, предотвращает запуск «дублирующих событий». Я попробовал несколько тактик, чтобы определить, запускается ли обработчик событий в нужное время, вместе с изменением идентификатора цели, но не уверен, что еще можно попробовать в этот момент. Я подозреваю, что 2-й обработчик событий запускается на предыдущей странице, так как он уже сработал, но «добавления» работают, как и ожидалось.
$("#debugwindow").append("pre<br>");
$("#iframeTarget").on("load", function() {
$("#iframeTarget").unbind();
$("#iframeTarget").off();
$("#iframeTarget").attr("id","iframeTarget2");
$("#debugwindow").append("start interior of 1<br>");
$("#iframeTarget2").on("load", function() {
$("#iframeTarget2").unbind();
$("#iframeTarget2").off();
$("#iframeTarget2").attr("id","iframeTarget3");
$("#debugwindow").append("start interior of 2<br>");
$("#iframeTarget3").contents().find("#searchInput").val("I don't work?"); // 3 fails?
$("#iframeTarget,#iframeTarget2,#iframeTarget3").html("even I don't do anything!"); // fails?
// $("#iframecont").html("I ruin everything!"); // targets iframe container as test
$("#debugwindow").append("end interior of 2<br>");
});
$(this).contents().find("#searchInput").val("3M"); // 1 successfully fills search
$(this).contents().find("#searchButton").trigger("click"); // 2 successfully triggers button, changes URL to 3M page
$("#debugwindow").append("end interior of 1<br>");
});
$("#debugwindow").append("post<br>");
Ищет какие-либо идеи для правильной настройки двух обработчиков событий или если моя логика неверна. В идеале я смогу заполнить строку поиска, запустить поиск, а затем манипулировать DOM на следующей загруженной странице.