Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Как сделать, чтобы ссылка не открывалась в новом окне

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно ли сделать, чтобы при нажатии SHIFT ссылка не открывалась в новом окне?
 
Добавлено

Я не хотел три топика создавать, честно!!!
Инет заглючил....

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3591 | Зарегистр. 09-07-2002 | Отправлено: 04:33 26-06-2003
woffer

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Возможно ли сделать, чтобы при нажатии SHIFT ссылка не открывалась в новом окне?  
 

Где, как, на чем и для чего ?
 
 

Всего записей: 935 | Зарегистр. 11-10-2002 | Отправлено: 05:59 26-06-2003 | Исправлено: woffer, 06:00 26-06-2003
Mirror

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Главное - ЗАЧЕМ???

Всего записей: 69 | Зарегистр. 10-11-2002 | Отправлено: 09:02 26-06-2003
OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Где, как, на чем и для чего ?  


Цитата:
Главное - ЗАЧЕМ???

А какая разница???
 
Объясняю: есть чат, в окне с текстом строчки сообщений чатовцев. Ники чатовцев представляют собой ссылки, которые вставляют ники в строку ввода. Каждый щелчек на нике стирает содержимое строки ввода, и вставляет ник. Я делаю, чтобы щелчок с шифтом не стирал содержимое поля, а ник вставлял перед содержимым поля.
Что-нить понятно?
Я сделал, но через ж@пу - убрал ссылки, заключил ник в <span> (ниче лучшего не придумал) и обрабатывал OnClick. Вроде-бы работает, но при щелчке на нике получается кратковременное выделение всего текста от начала страницы до ника, по которому щелкаешь.... Некрасиво получается и раздражает. Хотелось бы оставить ссылки. С ссылкамитоже работает, но с каждым щелчком открывается новое окно с ошибкой...
Можете посмотреть здесь: http://evropa.com.ua/cgi-bin/chat/chat.cgi
Кстати справа в списке чатовцев работает нормально из-за того, что там ссылки вставки ника картинками, а не текстом...

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3591 | Зарегистр. 09-07-2002 | Отправлено: 10:22 26-06-2003 | Исправлено: OLEX, 10:26 26-06-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OLEX
http://www.javascripter.net/faq/shiftcli.htm

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 14:38 26-06-2003
Lechii



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
http://www.javascripter.net/faq/shiftcli.htm  

надо еще для Gecko обработку добавить , т.к. в Mozilla этот скрипт не работает  

Всего записей: 273 | Зарегистр. 26-12-2002 | Отправлено: 15:35 26-06-2003
OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Огромное спасибо за ссылочку, потому что я сделал проверку на шифт только для ИЕ.
Но как этим делом запретить ссылкам открываться в новом окне?

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3591 | Зарегистр. 09-07-2002 | Отправлено: 18:06 26-06-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OLEX

Цитата:
Но как этим делом запретить ссылкам открываться в новом окне?

javascript'ом ссылки сделай, чтоб бесполезно было пытаться открыть их в новом окне

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 07:29 27-06-2003
OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Svarga
блин, ты покажи как..... я уже как только не пытался.... :/

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3591 | Зарегистр. 09-07-2002 | Отправлено: 17:10 27-06-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OLEX

Цитата:
Svarga  
блин, ты покажи как..... я уже как только не пытался.... :/

Сначала хотел ответить так:

Цитата:
насколько я понимаю, с выключенным JavaScript'ом у тебя в чате делать нечего, поэтомувсе ссылки, которые не нужно открывать в новом окне просто можно выдать через простую функцию, напр.:

Код:
<script> function pshol(urla) {location.href=urla}</script>
 
<a href="javascript:pshol('../urla.cgi')" target=_self></a>

 
при попытке открыть такое с шифтом (контрол+шифт и т.д.) в новом окне в адресной строке вместо адреса будет javascript:poshol('../urla.cgi') , посему ничего не откроется
но потом ещё раз перечитал, что тебе нужно и дошло, что гоню
 
Вообщем, пробуй так:
Отслеживать нужно не только нажатие shift-- ещё ctrl и alt-- в Опере ctrl+alt+click открывает ссылку в новом фоновом окне, как и ctrl+shift+click)... делаем следующее:

Код:
 
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Windows-1251">
<script>
function pshol(evt)
{
var knopka=''
evt=(evt)?evt: (window.event)?window.event :""
if (evt){
if (evt.modifiers){
if(evt.modifiers&Event.ALT_MASK){knopka += '\nalt'}
if(evt.modifiers&Event.CONTROL_MASK){knopka += '\nctrl'}
if(evt.modifiers&Event.SHIFT_MASK){knopka += '\nshift'}
}else {
if(evt.altKey){knopka += '\nalt'}
if(evt.ctrlKey){knopka += '\nctrl'}
if(evt.shiftKey){knopka += '\nshift'}
}
}
if (knopka=='') {alert('делаем, что хотели')} else {alert('не фиг эти:'+knopka+'\nкнопки нажимать!\n\nПросто кликни и будет тебе счастье :\)')}
return false
}
</script>
 
 
<a href="http://главная_страница" onClick="return pshol(event)">link</a>

 
    По браузерам сие работает так:
  • MSIE 5.5, Opera 7-- всё как надо
  • Mozilla 1.3-- работает, но при нажатом ctrl+shift и ctrl+alt вылавливает нажатые кнопки, однако всё-таки открывает новую страницу с адресом, определённым в ссылке (поэтому и сделал href="http://главная_страница"), просто при нажатом shift пытается сохранить  httр://главная_страница
  • NN4 при нажатии ссылки с shift'ом (или shift + что угодно) предлагает сохранить httр://главная_страница , а с простым кликом нормально всё работает.

 
К сожалению сейчас нет возможности проверить в MSIE 5, Opera 6, Mozilla 1.0
 
Добавлено
блин, ....-е смайлики-- даже [nо][/no] их не берёт!
в листинге скрипта вместо этого кошмара должно быть двоеточие с открывающей скобкой--  : (
 
Добавлено
о... сейчас с пробелом в листинге сделаю...
если вдруг работать не будет, то в этой строке:
evt=(evt)?evt: (window.event)?window.event :""
убери пробел между : и (

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 19:28 27-06-2003 | Исправлено: Svarga, 20:09 27-06-2003
OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Svarga
Огромное спасибо за помощь, щас некогда разобраться, но после беглого просмотра по-моему ты все-таки меня не совсем понял. Ссылка не на хтмл-страницу, а на джаваскрипт, который вставляет ник в текстовое поле. И мне надо жать на него и с шифтом, и без шифта. Разница в том, что без шифта старый ник в текстовом поле заменяется на новый, убирая все из текстового поля, а с шифтом новый ник добавляется к имеющейся в текстовом поле строке. И вот во втором варианте новый ник все-таки добавляется к имеющейся в текстовом поле строке, но выскакивает новое окно с ошибкой, в адресной строке адрес javascript:void
Ты не заглядывал сюда http://evropa.com.ua/cgi-bin/chat/chat.cgi ?

Цитата:
Я сделал, но через ж@пу - убрал ссылки, заключил ник в <span> (ниче лучшего не придумал) и обрабатывал OnClick. Вроде-бы работает, но при щелчке на нике получается кратковременное выделение всего текста от начала страницы до ника, по которому щелкаешь.... Некрасиво получается и раздражает. Хотелось бы оставить ссылки.

Заглянь, чтобы понял что мне надо.

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3591 | Зарегистр. 09-07-2002 | Отправлено: 00:39 28-06-2003 | Исправлено: OLEX, 00:45 28-06-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OLEX
попробуй не на клик с шифтом повесить добавление ника к строке, а на alt (безопаснее-- в браузерах alt+click, вроде как, не юзается в отличии от шифт+клик)
т.е. что-то типа

Цитата:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Windows-1251">  
<script>  
function pshol(evt)  
{  
var knopka=''  
evt=(evt)?evt: (window.event)?window.event :""  
if (evt){  
if (evt.modifiers){  
if(evt.modifiers&Event.ALT_MASK){deystviye_s_altom()}  
if(evt.modifiers&Event.CONTROL_MASK){knopka += '\nctrl'}  
if(evt.modifiers&Event.SHIFT_MASK){knopka += '\nshift'}  
}else {  
if(evt.altKey){deystviye_s_altom()}  
if(evt.ctrlKey){knopka += '\nctrl'}  
if(evt.shiftKey){knopka += '\nshift'}  
}  
}  
if (knopka=='') {deystviye_bez_alta()}
return false  
}  
</script>  
 
<a href="http://главная_страница" onClick="return pshol(event)">link</a>  

то бишь при alt+click (тж. возможно с ctrt и/или shift) срабатывает deystviye_s_altom(), а при простом клике-- deystviye_bez_alta(), при клике просто с shift и/или alt клик блокируется.
 
Просто сначала не обратил внимание, что тебе два разных действия надо, а не простая блокировка клавиш

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 03:35 28-06-2003
OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Svarga
Спасибо! Наверно попробую с контролом, так как с альтом как-то нелогично.... а то вдолбился в этот шифт!

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3591 | Зарегистр. 09-07-2002 | Отправлено: 05:20 28-06-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OLEX

Цитата:
Спасибо!

не за что
sorry за непонятливость-- не спамши оно тяжко соображается
 

Цитата:
Наверно попробую с контролом, так как с альтом как-то нелогично.... а то вдолбился в этот шифт!  

почему же нелогично? альтернативное действие... по-моему, вполне.
К тому же ctrl+click используется в Мозилле и Опере для открытия в новом окне, причём если в Опере всё нормально блокируется, то Мозилла всё одно открывает то, что указано в href

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 12:10 28-06-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Как сделать, чтобы ссылка не открывалась в новом окне


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru