Окно.Открытый пост - PullRequest
       27

Окно.Открытый пост

6 голосов
/ 05 апреля 2011

У меня есть ссылка, при нажатии которой я открываю окно с window.open, как показано ниже.

 window.open("edit.jsp?clientId=" + clientId + "&eventId=" + eventId , 'height=600,width=800,scrollbars=1,location:no,menubar:no,resizable=1,status:no,toolbar:no');

Я не хочу, чтобы здесь передавался параметр, я хочу что-то вроде post, чтобы люди не могли скопировать URL.

Ответы [ 3 ]

15 голосов
/ 05 апреля 2011

Вы не можете вызвать всплывающее окно javascript, а затем форсировать запрос на публикацию.

Три варианта:

  1. Запуск формы POST с помощью target="_blank" с использованием JavaScript (но это непозволяют отключить элементы интерфейса, такие как строка меню).
  2. Открывать всплывающее окно локально, но не указывать URL.Используйте результат window.open, чтобы изменить документ для создания формы, которую вы затем отправите.

    var myWindow = window.open("", "", "height=600,width=800,scrollbars=1,location=no,menubar=no,resizable=1,status=no,toolbar=no");
    myWindow.document.write("Write a form here and then later on trigger it");
    
  3. Вы действительно не должны делать ничего из этого.Если пользователям плохо копировать URL-адреса, в вашем приложении есть недостаток.

  4. Добавлено после редактирования : использовать подход «пустое окно», но вместо того, чтобы писать форму и запускать ее, выполните XMLHTTPRequest (с POST)в родительском.Результат этого запроса можно использовать для заполнения дочернего окна.

6 голосов
/ 05 апреля 2011

Рядом с AJAX (jquery.load ()), который я бы использовал сам - как насчет следующего подхода:

<form method="post" action="edit.jsp" target="_blank">
      <input type="hidden" name="clientId" value="88"/>
      <input type="hidden" name="eventId" value="2"/>
</form>

target = _blank фактически откроет новое окно / вкладку, опубликованные данные будутобработано в. К сожалению, вы едва можете контролировать внешний вид новых окон.

0 голосов
/ 05 апреля 2011

Как насчет реализации всплывающего окна модели с использованием div? Вы можете сделать http-вызов для загрузки содержимого этого всплывающего окна div / model. Вы также можете использовать метод load () jQuery для загрузки содержимого div.

http://api.jquery.com/load/

Здесь находятся некоторые другие плагины всплывающих окон для моделей

http://jquery.com/demo/thickbox/

http://colorpowered.com/colorbox/

http://fancybox.net/

...