Междоменный букмарклет Javascript

Я занимаюсь этим несколько дней, и поиски, в том числе здесь, еще не дали мне никаких решений.

Я создаю букмарклет, который должен взаимодействовать с POST API. Я получил большую часть работы, кроме самой важной части; отправка данных из iframe (я знаю это ужасно! Если кто-нибудь знает лучшее решение, дайте мне знать) в javascript в моем домене (тот же домен, что и API, поэтому связь с API не проблема).

На странице, на которой пользователь щелкает букмарклет, мне нужно получить следующие данные в javascript, который включен в iFrame.

    var title = pageData[0].title;
    var address = pageData[0].address;
    var lastmodified = pageData[0].lastmodified;
    var referralurl = pageData[0].referralurl;

Сначала я исправил это, проанализировав эти данные как JSON и отправив их через атрибут name = "" iFrame, но понял, что примерно на 20% веб-страниц это ломается. Мне отказано в доступе; к тому же это не очень красивый метод.

Есть ли у кого-нибудь идеи о том, как я могу это решить. Я не хочу использовать POSTS, которые перенаправляют, я хочу, чтобы все было AJAX и как можно ненавязчивее. Также стоит отметить, что я использую библиотеку jQuery.

Большое спасибо,

Лед

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
2 909
4

Ответы 4

Если вам нужно передать данные в iframe, а iframe фактически включает другую страницу, но эта другая страница находится в том же домене (я знаю много предположений).

Тогда код страницы руководства может сделать это:

DATA_FOR_IFRAME = ({'whatever': 'stuff'});

Затем код на странице, включенной в iframe, может сделать это:

window.parent.DATA_FOR_IFRAME;

получить данные :)

После большой работы мне удалось найти решение с использованием JSONP, которое позволяет использовать кроссдоменный Javascript. С Codeigniter Framework это очень сложно, потому что передача данных по URL-адресам требует большого количества кодировок и проверки отсутствия недопустимых символов. Также я все еще смотрю, насколько это безопасно.

Если я правильно понял ваш вопрос, возможно, вы добьетесь успеха, изучив использование прокси-сервера Script Tag. Это стандартный способ реализации междоменного AJAX в фреймворках javascript, таких как jquery и extjs.

См. Документация JQuery AJAX

Вам стоит заглянуть в easyXDM, он очень прост в использовании. Посмотрите один из примеров на http://consumer.easyxdm.net/current/example/methods.html

Другие вопросы по теме