2013-11-18 5 views
0

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

Можно было бы использовать букмарклет для отправки данных в форму, пока пользователь находится на моем сайте, но форма является несколькими щелчками за аутентификацией. Учитывая, что букмарклет может читать только то, что было сохранено (cookie, session, storage) на текущем сайте, невозможно использовать букмарклет на другом сайте для заполнения формы данными, хранящимися на моем сайте.

Просьба предлагать любые решения на основе javascript на стороне клиента. Как букмарклет или что-то подобное.

спасибо.

+0

Вы можете использовать серверную или строго клиентскую сторону? – Markasoftware

+0

Возможный дубликат: http://stackoverflow.com/questions/3348227/javascript-bookmarklet-to-take-info-from-one-page-and-submit-it-to-form-on-anoth?rq=1 – Markasoftware

+0

@Markasoftware 1) там нет ответа. 2) ОК. давайте предположим, что серверная сторона возможна. как тогда? – viDim

ответ

0

С букмарклетом я бы сказал, что вы на правильном пути, но используете динамический. например:

function makeBookmarklet(){ 
    var elt=document.createElement('a'); 
    var hrefString=''; 
    for(var k=0;k<arguments.length;k++){ 
     hrefString+=' document.getElementById("'+arguments[k].id+'").value="'+arguments[k].value+'";'; 
    } 
    elt.href=hrefString; 
    return elt; 
} 

И тогда вы могли бы назвать эту функцию, и каждый аргумент должен быть объектом с id и value атрибута. id должен быть идентификатором поля для автоматического заполнения. value должно быть значением для вставки в это поле. Он возвращает элемент, поэтому поместите его где-нибудь в документ и попросите его перетащить его в панель закладок и щелкните по нему на другом сайте. Чтобы это было яснее, вы бы назовете это так:

aElt=makeBookmarklet({id:'username',value:document.getElementById('username').value},{id:'othercrap',value:'fixedvalue'}); 
+0

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

+0

Для этого им придется иметь новый букмарклет, да. Кроме того, разрешен ли другой сервер CORS? Можете ли вы разместить JavaScript на другой веб-странице? Если это возможно, я мог бы сделать гораздо более удобный способ сделать это. – Markasoftware

+0

1) Нет информации о корсе. 2) Я ничего не могу добавить на сайт, где находится форма. – viDim