как выбрать из себя iframe с помощью jquery - PullRequest
3 голосов
/ 03 августа 2009

Мне нужно выбрать iframe с запросом jquery внутри того же iframe. Однако я не хочу присваивать iframe уникальный идентификатор и использовать

$('#'+self.name,top.document)

(который я где-то видел). Есть ли относительный способ сделать это (что-то с $ (this) и обходом ??!?)

Все на одном сервере, xss нет.

Ответы [ 3 ]

26 голосов
/ 03 августа 2009

Если у вас есть только один iFrame на вашем сайте, это легко. Просто используйте этот селектор

 $('iframe', parent.document)

Если у вас больше одного, все становится сложнее. В документе iFrame нет понятия, в какой из фреймов главной страницы он был загружен, поэтому нет простого способа выбора родительского фрейма с помощью селектора. Однако если вы знаете родительский идентификатор, имя, класс или даже URL-адрес источника iframe, вы можете использовать эту информацию, чтобы изменить селектор выше, чтобы он соответствовал только тому, который вы хотите. Вы также можете найти нужный фрейм iframe, если знаете его индекс на главной странице.

 // iframe with MyClass class
 $('iframe.MyClass', parent.document);

 // iframe with MyId id
 $('iframe#MyId', parent.document);
 // even better since id is unique
 $('#MyId', parent.document);

 // iframe with myname name
 $('iframe[name=myname]', parent.document);

 // iframe with specific src
 $('iframe[src=/path/to/iframe/source]', parent.document);

 // second iframe (index is starting from 0)
 $('iframe:eq(1)', parent.document); 
2 голосов
/ 01 декабря 2011

Чтобы выбрать второй фрейм, он должен быть:

second iframe (index is starting from 0)
$('iframe:eq(1)', parent.document);
1 голос
/ 27 декабря 2018

вы можете фильтровать по определенному элементу (класс в следующем примере) в вашем iframe

$('iframe', parent.document).filter(function (index, element) {
    return $(element).contents().find('.specific-element').length;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...