Всплывающее окно для просмотра справки - PullRequest
1 голос
/ 09 января 2011

Rails 2.3.5 (рабочий сервер, на Rails 3 нет выбора). В настоящее время я все еще использую Prototype, но только что добавил JQuery (noconflict), чтобы поэкспериментировать с его UI Dialog. Я новичок без опыта работы с javascript или JQuery и опыт работы с Rails несколько месяцев.

У меня есть индексная страница со списком «команд». Списки не отображают всю информацию и имеют усеченные текстовые поля. Итак, в каждом списке «команды» у меня есть ссылка для показа и редактирования, идущая во всплывающее окно:

<%= link_to "Team_Details", {:controller => 'teams', :action => 'show', :id => t.id},
popup => ['show','toolbar=no,location=no,directories=no,status=no,
menubar=no,scrollbars=yes,resizable=yes,autosize=yes'] %>

Где я застрял:

  • с всплывающим открытым центральным экраном
  • автоматическое изменение размера всплывающего окна
  • Заголовок link_to не работает (кажется, перезаписано заголовком представления)
  • Общий вид не очень хорош (и нет анимации для открытия / закрытия)

Я пытался заставить это работать в диалоге пользовательского интерфейса JQuery, но я дошел только до открытия пустого диалогового окна. Я думал, что возможность открыть представление во всплывающем окне будет довольно распространенным явлением, когда там будет много информации от Google, но сегодня мне не повезет. Большая часть информации, которую я нашел, касается отображения содержимого скрытого div в диалоге пользовательского интерфейса.

Думаю, мне интересно, в каком направлении здесь идти? Я просто хочу передать параметр: id в представление и отобразить его во всплывающем окне. Если JQuery UI Dialog - это хороший способ, есть ли простой пример использования где-нибудь для этого?

Спасибо за любую помощь!

Ответы [ 2 ]

2 голосов
/ 09 января 2011

Я бы использовал ненавязчивый javascript с лайтбоксом пользовательского интерфейса jQuery или с:

http://colorpowered.com/colorbox/

Если вы используете самую последнюю версию, не забудьте поставить макет на false.

1 голос
/ 09 января 2011

Если кто-нибудь еще обратится за помощью к помощнику всплывающего окна link_to, самая большая проблема, с которой я столкнулся, заключалась в том, что если пользователь щелкает обратно в браузере, не закрывая всплывающее окно, всплывающее окно теряет фокус и идет позади браузера. Затем, если новое всплывающее окно открыто, оно загрузится в существующее всплывающее окно. Похоже, что у него очень высокая вероятность запутать пользователя, потому что он может подумать, что новое всплывающее окно так и не открылось. Чтобы добавить к этой проблеме, IE 6/7/8 имеет ошибку в своем поведении для события window.onblur. Ошибка закрывает окно при изменении содержимого. Итак, если вы разрешите пользователю переключаться между показом и редактированием в окне poup, это изменение закроет всплывающее окно в IE.

Я обнаружил, что скрипт (с исправлением IE onblur для IE 6/7/8) позаботится обо всем:

От Владимира Кельмана http://pro -thoughts.blogspot.com / 2006/10 / некорректный-поведение-оф-windowonblur.html

<head>
     <script type="text/javascript">
          var active_element;
          var bIsMSIE;

          function initiateSelfClosing() {
              if (navigator.appName == "Microsoft Internet Explorer") {
                  active_element = document.activeElement;
                  document.onfocusout = closeWnd;
                  bIsMSIE = true;
                  }
                    else { window.onblur = closeWnd; }
                  }

                  function closeWnd() {
                  if (window.opener != null) {
                  if (bIsMSIE && (active_element != document.activeElement)) {
                    active_element = document.activeElement;
                  }
                      else {
                      window.close();
                  }
              }
          }
      </script>

<body onload="initiateSelfClosing()">

stuff

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