Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Октрытие ссылки в новом окне при помощи onclick... <a href="http://" onclick="window.open"> 
V
    Опции темы
Гриша
  Дата 2.1.2006, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: нет
Всего: 1



Здравствуйте. Подскажите пожалуйста.
Я хочу сделать так, чтобы была ссылка вида <a href="url" onclick="функция открывающая ссылку в новом окне с указанными параметрами">

У меня есть два кода, один очень хороший окрывает ссылку в новом окне, но ссылка имеет вид <a href="javascrip:na_open_window">, и есть второй код он открывает ссылку в новом окне и имеет вид <a href="url" onclick="window.open">.
Я хочу сделать так, чтобы функция na_open_window в первом коде, вызывалась как функция window.open во втором коде, помогите пожалуйста совместить:

Первый код, где <a href="javascript:na_open_window(...
Код

<script language="JavaScript">
<!--
function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';
  window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}

// -->
</script>


Код

<a href="javascript:na_open_window('win', 'index.php', 0, 20, 455, 400, 0, 0, 0, 1, 1)" target="_self">Ссылка</a>



Второй код, где <a href="http://..." onclick=window.open"
Код

<a href="index.php" onclick="window.open ('','list', 'toolbar=no,directories=no,menubar=no,scrollbars=yes,resizable=no,width=650,height=700')" target=list>Ссылка</a>

--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Гриша
Дата 2.1.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: нет
Всего: 1



У меня получилось, незнаю только на сколько это корректно. Я изменил Html код в первом коде:
Код

<a href="index.php" onclick="na_open_window('win', 'index.php', 0, 20, 455, 400, 0, 0, 0, 1, 1)" target="win">Ссылка</a>

и я думаю в target здесь нужны ковычки, или нет в данном варинте target="win"

В мтоге я могу сделать без url в функции:
Код

<a href="index.php" onclick="na_open_window('win', '', 0, 20, 455, 400, 0, 0, 0, 1, 1)" target="win">Ссылка</a>


--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Гриша
Дата 2.1.2006, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: нет
Всего: 1



smile Я надеюсь на то, что данный вариант октрытия нового окна корректен, я попробовал его в opera работат, незнаю как в Navigator.
Напишите пожалуйста ваши сооброжения, если срипт недопустим для использования, просто я знаю, чтобы бывает так что вроде все работате, а в итоге получается, что все было неправильно и работало например только у меня.
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Гриша
Дата 9.1.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: нет
Всего: 1



Вот проблема появилась. Помогите пожалуйста. А тоя пока это не сделаю не могу другое делать, а столько еще работы.

Данная функция работате правильно в броузерах IE, Netscape (Mozilla), Opera.
Но данная функция работате неправильно на моем хостинге (agava) при использовании IE: окно открывается с разрешенным параметром строка состояния (как-будто я задал такие параметры na_open_window('win', 'index.php', 0, 20, 455, 400, 0, 0, 1, 1, 1)) и в строке заголовка страницы он отображает не тоолько содержимое тэга <title> но и сначала отображает адрес моего домена (к примеру http://forum.vingrad.ru/) - я непонимаю, что это такое, меня это просто бесит.
Помогите пожалуйста решить проблему.

И главное у меня на localhost все работате правильно.

Это сообщение отредактировал(а) Гриша - 9.1.2006, 00:07
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Sardar
Дата 9.1.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Гриша правильно что создал новую тему, там же и ответ.

По поводу кода, target оберни в ковычки, вообще всегда все аттрибуты оборачивай в кавычки и желательно в двойные, тогда, глядя на твою вёрстку, не будет лишний раз плохим словом поминать тебя програмист движка сайта smile

В остальном всё правильно, ну разве только что ты не учёл глупых баннерорезалок, что не всегда пропускают window.open. Xотя по идее в ссылке пропускать должны все.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Гриша
Дата 10.1.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: нет
Всего: 1



Sardar, спасиюбо большое за помощь вам, за пояснения, ответ в новой теме уже прочитал (успокоился) smile .

Я щас с форумом phpBB вожусь, изменяю дизайн и некоторые детали, так вот там я увидел похожий код открытия нового окна, за исключение, того что в конце они использую return false; и имя окна делают например "_win",
<a href="index.php" onclick="na_open_window('_win', 'index.php', 0, 20, 455, 400, 0, 0, 0, 1, 1);return false;" target="_win">Ссылка</a>
Это более корректный код или вобщем-то то же самое?

И брать в ковычки target вы имеете в виду так: "target="win" " - я посмотрел, код работает, да и мой визуальный редактор его допускает (удобней чем блокнот, хотя полностью не заменит никогда). Т.е. в кавычки выделяют те части кода, которые можно сказать придумали или узнали сами, как дополнительный прибабах?

По поводу баннерорезалок, я тоже надеюсь, что с href="index.php" он откроет окно.

================================================================
А вы не замечаете, что в форме быстрого ответа, в меню слева, кнопка цитата, не видна, а при наведении видна, но видна та кнопка, которая как я понимаю должна стоять не при наведении (зеленая).
Вдруг вы этого не заметили, на всякий случай написал.
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Sardar
Дата 10.1.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Имя окну можно дать любое, но все специальные имена начинаються с подчёркивания. Смотрим на аргументы window.open, видим что спец. имени "_new" нет, значит браузер примет это как обычное имя, следовательно это хуже для читаемости кода. Используй просто "win" или любое другое имя, будет лучше.

return false нужен что бы ссылка не сделала переход. Заметь ты не всегда указываешь url, что нужно открыть в window.open, разберём что вообще происходит по шагам:
  • клик по ссылке, событие onclick бежит от ссылки к document (все кроме IE поддерживают W3C DOM Event модель, потому событие зарождаеться от document - capturing mode к ссылке, затем от ссылки назад к document - bubbling mode)
  • браузер интересует только возвращаемое значение от onclick у ссылки, если это true или undefined (не было return инструкции), то переход по ссылке будет, иначе переход отменяеться.
  • глянув на target аттрибут ссылки (по дефолут _self) браузер ищет окно с этим именем если имя не являеться зарезервированым. Если найдёт окно, открытое ранее с этого домена, то в него и грузиться ссылка, иначе открываеться новое окно. Если имя зарезервировано, то берём соотвествующее окно от текущего фрейма, например _parent - родительский фрейм.
  • если переход разрешаеться (из onclick вернулось true или ничего), то грузим в выбраное окно ссылку из href
Отсюда врубаемся почему открыв окно без ссылки, но с именем идеентичным target ссылки и из onclick ничего не вернулось или true, то мы загрузим ссылку в новом окне. Если вернуть false, то будет открываться пустое окно, перехода не будет. Если же в открытии окна указать url, что и в href, то откроем окно с сылкой, если вернуть не false, то открытое окно будет дважды перезагружено smile

target это аттрибут, "брать в кавычки" имел в виду брать содержимое в кавычки, пример: target="_top"


Цитата(Гриша @ 10.1.2006, 14:15 Найти цитируемый пост)
А вы не замечаете, что в форме быстрого ответа, в меню слева, кнопка цитата, не видна

Нет, всё есть, попробуй ctrl+F5


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Гриша
Дата 11.1.2006, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: нет
Всего: 1



Sardar, спасибо огромное за такое пояснение. Щас прочитал, вообще ничего не понял, потому что запарился уже. Завтра почитаю, все пойму.
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.