Выбор элемента в iFrame jQuery - программирование
Подтвердить что ты не робот

Выбор элемента в iFrame jQuery

В нашем приложении мы анализируем веб-страницу и загружаем ее на другую страницу в iFrame. Все элементы на этой загруженной странице имеют свои токениды. Мне нужно выбрать элементы этими токенидами. Средства - я нажимаю элемент на главной странице и выбираю соответствующий элемент на странице в iFrame. С помощью jQuery я делаю это следующим образом:

function selectElement(token) {
     $('[tokenid=' + token + ']').addClass('border'); 
}

Однако с помощью этой функции я могу выбрать элементы только на текущей странице, а не в iFrame. Может ли кто-нибудь сказать мне, как я могу выбрать элементы в загруженном iFrame?

Спасибо.

4b9b3361

Ответ 1

var iframe = $('iframe'); // or some other selector to get the iframe
$('[tokenid=' + token + ']', iframe.contents()).addClass('border');

Также обратите внимание, что если src этого iframe указывает на другой домен, из-за соображений безопасности вы не сможете получить доступ к содержимому этого iframe в javascript.

Ответ 2

Взгляните на этот пост: http://praveenbattula.blogspot.com/2009/09/access-iframe-content-using-jquery.html

$("#iframeID").contents().find("[tokenid=" + token + "]").html();

Поместите свой селектор в метод поиска.

Однако это может быть невозможно, если iframe не приходит с вашего сервера. Другие сообщения говорят о разрешении на отказ.

jQuery/JavaScript: доступ к содержимому iframe

Ответ 3

когда ваш документ готов, что не означает, что ваш iframe тоже готов,
поэтому вы должны прослушать событие загрузки iframe, затем получить доступ к своему содержимому:

$(function() {
    $("#my-iframe").bind("load",function(){
        $(this).contents().find("[tokenid=" + token + "]").html();
    });
});

Ответ 4

Если случай обращается к IFrame через консоль, например, Chrome Dev Tools, вы можете просто выбрать контекст запросов DOM через раскрывающийся список (см. Рисунок).

Chrome Dev Tools - Selecting the iFrame

Ответ 5

здесь просто JQuery, чтобы сделать это, чтобы div перетаскивал только в контейнере:

$("#containerdiv div").draggable( {containment: "#containerdiv ", scroll: false} );