2012-04-13 3 views
0

У меня есть два HTML-страниц: source.html и dest.htmlПередача сообщений между двумя HTML-страницы с помощью JavaScript

  • В source.html, я создаю некоторые кнопки (старт, стоп, пауза ...)
  • В dest.html я создаю простые часы.

Всякий раз, когда я нажимаю на одну из этих кнопок, источник отправляет сообщение в dest. После обработки результат (на основе которого была нажата кнопка) будет отправлен обратно к источнику. Я пробовал iframe, но это не сработало для меня. Есть ли предложения, которые не используют модель клиент-сервер?

ответ

0

Есть два способа отправить сообщение.

  1. В источнике создать форму, которая представляет в dest.html, убедитесь, что метод «GET»

  2. по нажатию кнопки установите значение сообщения и отправьте form

    // что-то вроде document.getElementById ('message'). value = 'HELLO'; document.getElementById ('form'). Submit();

2a. Вам не нужно, чтобы сделать форму, вы можете просто перенаправить с закодированным URL на кнопке source.html нажмите как

window.location = 'dest.html?message=somemessage'; 
  1. On отправить файл dest.html откроется, с сообщением, имеющимся в URL страницы

    var url = window.location + "";

    // если есть несколько параметров вы должны цикла и хранить их в массиве для одного вы можете использовать

    уаг сообщение = url.substr ((url.indexOf («=») + 1)) ; предупреждение (сообщение);

второй метод Не пробовал, хранить их в печенье, когда кнопка получает нажал на source.html и читать куки в dest.html

+0

Не знаю, почему мне не разрешено делать это. – Zaje

+0

1-й метод - это будет односторонний процесс. Обе страницы будут открываться последовательно в одном окне (вкладка). source.html загружает dest.html, dest.html загружает source.html. Не два на какое-то время! Или это будет тот же самый модельный ребенок-новичок, но не обязательно использовать формы. –

+0

Хорошо, это сработало, но могу ли я создать 2 страницы как «имитацию модели клиентов»? Я имею в виду, что эти 2 страницы существуют в одно и то же время, и всякий раз, когда source.html отправляет сообщение dest.html, он ответит на source.html? – nxhoaf

0

no сделать это, если окна независимы (без запросов на сервер). Если оба окна не имеют каких-либо фреймов. Из соображений безопасности.

Но если вы создаете dest.html окна из source.html, вы можете использовать созданные переменную окна (window.open), чтобы управлять ею и OPENER объектом для управления source.html окна.

+0

Так вы имеете в виду, что я должен интегрировать dest.html в source.html, а затем использовать объект окна, чтобы манипулировать dest.html? – nxhoaf

+0

Обычно нет необходимости делать какие-либо манипуляции с независимыми окнами. Поэтому они используют или кадры, или создают дочернее окно на лету. Все эти подходы дают вам собственные методы. Но если вам нужно работать с вкладками btw, вы действительно можете попробовать метод с куки-файлами. Он должен работать в рамках общего домена. –

0

На самом деле, вы можете. Попробуйте использовать метод window.postMessage(). Кроме того, вам нужно будет создать прослушиватель событий, если вы хотите отправить сообщение обратно.

Пожалуйста, следуйте инструкциям, приведенным в this referrence

Смежные вопросы