Перенаправьте jQuery в Iframe для изменения родительского документа - PullRequest
1 голос
/ 22 февраля 2012

У меня есть сценарий использования, с которым я экспериментирую - песочница многих разных библиотек JS для скрытых фреймов На сайте может быть много виджетов, все из одного домена, для которых могут потребоваться разные версии библиотек js. Чтобы предотвратить глобальные конфликты, я подумал, что было бы интересно поместить все необходимые библиотеки в фреймы. Так что в одном iframe у меня может быть jQuery 1.7.1, но в других может быть что-то старшее. Я хотел бы, чтобы код, работающий на каждом iframe, мог вносить изменения в главное окно. Я смог сделать эту работу, настроив переменную «document» в исходном коде jQuery так, чтобы она указывала на «var document = top.document.

Используя этот подход, я смог выполнить в iframe $ ("body"). Append ('test ") и изменить его в родительском документе.

Кто-нибудь может предложить лучший подход к выполнению чего-то подобного? или лучший подход к песочнице?

1 Ответ

0 голосов
/ 22 февраля 2012

Если вы не хотите редактировать jQuery, я считаю, что это работает:

$(document, parent.window.document).contents().find('body').append('test');

Таким образом, вы также можете использовать библиотеку jQuery из iframe, но если вы 'в любом случае, если вы скрываете их, ваше решение, скорее всего, более подходит для ваших целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...