Междоменный Javascript Bookmarklet - PullRequest
2 голосов
/ 17 декабря 2008

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

Я создаю Bookmarklet, который должен взаимодействовать с 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% веб-страниц это происходит. Я получил отказ в доступе; также это не очень красивый метод.

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

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

Ice

Ответы [ 4 ]

2 голосов
/ 05 июля 2009

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

1 голос
/ 17 декабря 2008

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

1 голос
/ 07 января 2009

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

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

0 голосов
/ 17 декабря 2008

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

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

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

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

window.parent.DATA_FOR_IFRAME;

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

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