Создание новой вкладки / переключение между вкладками в Firefox? - PullRequest
1 голос
/ 27 ноября 2009

Я ищу способ улучшить рабочий процесс в CMS на основе PHP. Существует много переключений между режимом редактора и режимом предварительного просмотра страницы. Режим редактора огромен для загрузки, поэтому я хотел бы открыть режим предварительного просмотра в другом окне.

Я не хочу использовать новые окна или iframe в текущем окне, чтобы упростить рабочий процесс и избежать путаницы.

Есть ли способ явно открыть новую вкладку (не окно) и перейти к этой вкладке из документа в Firefox? Количество пользователей ограничено, поэтому существует возможность настроить клиент с необходимыми расширениями / разрешениями.

Я знаю, что Firefox можно принудительно открыть все ссылки на вкладках, но я думаю, что это не сработает, так как я все еще не могу обратиться и сфокусировать вновь открытое окно.

Спасибо за все отличные ответы всем. Теперь у меня достаточно материала, чтобы решить, буду ли я использовать подход greasemonkey, положиться на пользователя, который настроит «открыть на вкладках» и обратиться к окну по имени, или использовать «встроенное» решение HTML, как многие из вас предложили. Я принимаю ответ, который, как мне кажется, потребовал больше усилий.

Ответы [ 8 ]

16 голосов
/ 27 ноября 2009

Нет способа заставить окно открыться как вкладка. Все зависит от настроек пользователя.

3 голосов
/ 04 декабря 2009

Я второй ответы, которые говорят, что вы должны сделать это в HTML, используя Javascript. Тогда он может работать во всех браузерах, поддерживающих JS.

Я бы поместил два div на страницу и показывал / скрывал каждый div в зависимости от того, какая вкладка выбрана. Если вы разбираетесь в этом, вы можете отследить щелчок на вкладке и определить, щелкнул ли пользователь левой или средней кнопкой мыши. Если они щелкают левой кнопкой мыши, вы загружаете эту вкладку на странице. Если они щелкают средним нажатием, вы позволяете браузеру открывать новую вкладку / окно (в соответствии с пользовательскими настройками, не пытайтесь форсировать его) и оставлять текущее окно без изменений (то есть не переключаться на новую вкладку). , Действие для нажатия на вкладку будет состоять в том, чтобы использовать AJAX для загрузки содержимого удаленного документа и помещения его во вкладку. Используйте Javascript для изменения URL-адреса перед отправкой запроса AJAX, чтобы сервер знал, что нужно отправлять фрагмент веб-страницы вместо всей страницы.

Преимущество этого решения с двойным характером заключается в том, что подход с вкладками будет работать так, как вы хотите, чтобы он работал в большинстве случаев, но для пользователей, скажем, с двумя экранами, или тех, кто предпочитает переключаться между вкладками браузера, они по-прежнему будет иметь гибкость для работы в многооконном режиме. Все это можно сделать без каких-либо расширений браузера, и оно должно одинаково хорошо работать как в IE, так и в Firefox, Opera и т. Д. Избегайте блокировки себя в одном браузере, даже таком превосходном, как Firefox. Однажды клиенту нужно будет использовать Opera или Safari, и вы застрянете.

3 голосов
/ 02 декабря 2009

Вы говорите, что не хотите использовать iframe, чтобы избежать путаницы. Сейчас я не знаю о макете вашего сайта, но я использую подход, который открывает редактор в своем собственном div рядом с редактируемым контентом, и контент обновляется в реальном времени по мере того, как вы редактируете. Нет необходимости менять вкладки.

(Если окно слишком узкое, есть вкладки HTML Редактировать и Предварительный просмотр )

Кажется, это не добавляет путаницы пользователю, и для меня этот подход работает очень хорошо. Может быть, стоит рассмотреть в вашем случае.

2 голосов
/ 03 декабря 2009

Как насчет использования iframes и JavaScript?

Я знаю, что вы сказали, что хотите избежать «путаницы с использованием iframes», но, на мой взгляд, если вам действительно нужно загружать разные страницы одновременно, это лучший вариант.

Теоретически, вы можете создать свою собственную систему вкладок, используя javascript или даже лучше, используя jQuery, потому что его модуль пользовательского интерфейса предлагает довольно крутой контроль вкладок .

Для каждой вкладки вы можете загрузить отдельную версию вашей страницы администратора "без заголовка" внутри элемента <iframe>. Если пользователь хочет изменить что-то другое, он просто щелкнет по вкладке и принесет другой фрейм.

Все это также может быть сделано с использованием AJAX, но решение iframe довольно простое, так как вам просто нужно загрузить готовую страницу, и все постбэки уже обработаны исходной страницей и отделены от master-admin-page.

Вам также может потребоваться немного поиграть, чтобы установить правильную высоту вашего iframe, чтобы он соответствовал всему содержимому без полос прокрутки, но это опять-таки просто кусочек javascript.

1 голос
/ 07 декабря 2009

Вы не можете заставить вкладку, но если вы используете цель с определенным именем, например target = "my_cms_window", многие браузеры откроют ее как новую вкладку. Кроме того, они запомнят имя и, если вы используете цель несколько раз, поместите содержимое в ту же вкладку. Я обнаружил, что это очень хорошо работает в реальном мире.

1 голос
/ 05 декабря 2009

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

1 голос
/ 01 декабря 2009

Greasemonkey приходит на ум - быстрый Google дает открыть во вкладках левой кнопкой мыши . Я думаю, что вы могли бы изменить это так, чтобы он работал только на одной конкретной странице, и вы были бы вверх и вниз.

1 голос
/ 27 ноября 2009

Нет, нет способа принудительно открыть новую вкладку, просто потому что это не будет поддерживаться просмотром без вкладок

Вы можете настроить его только для открытия нового окна, а не новой вкладки.

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