Я хочу простой и легкий способ сделать междоменные запросы на адрес api (api.example.com), который является субдоменом моего основного домена (example.com).Возможно ли изменение DOM iframe из родительского фрейма (тот же document.domain)?
Я читал много о методах и взломах, чтобы иметь дело с XDR и их несовместимостью с каждым используемым браузером, но XDR все еще очень сложный для меня. Мне не нужно полное/сложное решение как easyXDM, которое я реализовал и работал отлично.
Итак, я решил «включить CORS», который решил проблему для современных браузеров Webkit и Gecko. Но, как всегда, есть IE (и в этом случае Opera тоже), который еще не совместим с CORS.
Как я хотел продолжить использовать методы jQuery AJAX, я искал решение, которое позволит XDR с помощью методов jQuery. Затем я реализовал очень приятное решение от benvinegar, которое заменяет метод jQuery.ajax() и, следовательно, все его зависимые методы: https://gist.github.com/859940. Его сценарий основан на трюке document.domain/iframe.
Перед вызовом функции, предложенной Беном, я тестировал поддержку CORS с помощью jQuery.support.cors (используя jQuery 1.6.2). Все в порядке, отлично работает.
Единственное, что мне не нравится в вышеупомянутом скрипте, это то, что мне нужно загрузить библиотеку jQuery с api.example.com, и я не хочу этого. Я создал набор миниатюрных библиотек javascript/plugins/scripts в одном файле, который используется example.com; что дает мне 2 варианта (для использования jQuery в api.example.com): загрузите весь комплект снова или загрузите не кешированную версию jQuery. Мне тоже не нравится.
Мой вопрос: Можно ли изменить DOM iframe из родительского кадра, если оба фрейма имеют тот же document.domain? Если да, могу ли я клонировать jQuery от example.com в child-iframe (api.example.com)? Как? Или я просто схожу с ума по этому поводу, и есть лучшее решение с учетом того, что я описал?
Благодарим вас заблаговременно, Leonardo.
если оба кадра ссылаются на тот же файл на вашем сервере он будет загружаться и кэшироваться только один раз –
Как насчет использования памяти? Загрузка в два раза того же, а не маленького файла потребует памяти, которую можно сохранить. Это еще более важно в мобильных браузерах. – leods92
Я мог только ответить на это со спекуляцией. я никогда не думал о том, загружен ли файл в память дважды, я бы хотел подумать, что это не так. я пытался искать в Интернете информацию, но я не могу получить условия поиска. –