Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Checkboxes and href

Сообщения:  [1-10]   [11-16] 

 
 автор: CNTv2.0   (11.02.2008 в 00:25)   письмо автору
 
   для: svk1be   (09.02.2008 в 22:49)
 

<html>
<head>
<script>
function myFunc (x, y)
{
for (var chk = new Array (), obj = document.getElementsByName ('account'), j = k = 0; j < obj.length; j++)
if (obj [j].checked) chk [k++] = obj [j].value;
if (!y) document.location.href = x + chk.join ('&')//прим.1 
else window.open (x + chk, '_blank'); //прим.2 
}
</script>
</head>
<body>
............
<input type="checkbox" name="account" value="a">
<input type="checkbox" name="account" value="b">
<input type="checkbox" name="account" value="c">
............
<u style="cursor: pointer" onclick="myFunc ('http://myserver.ru/scripts/scripts.php?account=', 0)">В текущем окне</u> <!-- прим.3 --> 
<u style="cursor: pointer" onclick="myFunc ('http://myserver.ru/scripts/scripts.php?account=', 1)">В новом окне</u> <!-- прим.4 -->
............
</body>
</html>

Примечания:
1. Если разделители не нужны, то chk.join ('&') замените на chk.join ('')
2. Если надо, чтобы новое окно было одним и тем же (а не новое для каждого нажатия), то замените '_blank' на, например, 'myNewWin' (т.е. на любое валидное имя переменной)
3,4. Обратите внимание, что надо использовать абсолютный URL вашего PHP-скрипта

   
 
 автор: svk1be   (09.02.2008 в 22:49)   письмо автору
 
   для: CNTv2.0   (07.02.2008 в 22:07)
 

Спасибо большое... Вообще то мне это надо для функциональности. Использоваться это будет в панельке для админов, а скорость тут важна. Потому очень важно что бы можно было запустить срипт в отдельном окне, а в это время просматривать текущую страничку.. может еще что то нажать надо будет :). Потому как возвращаться это лишнее время..

А на счет <span>.. С этого места пожалуйста по-подробнее.. Какая разница от <a> и дополнительная функционаьлность. Есть идеи как воплотить это в жизнь?

Спасибо огромное..

   
 
 автор: CNTv2.0   (07.02.2008 в 22:07)   письмо автору
 
   для: svk1be   (07.02.2008 в 21:47)
 

Вам РЕАЛЬНО надо, чтобы имелась возможность открытия этой ссылки в другом окне?

Или же вы просто МОДЕЛИРУЕТЕ возможные баги при работе скрипта?
Ведь, например, если поместить на ссылку фокус при помощи клавиши TAB, а потом нажать на клавишу ENTER, то ведь тоже произойдет переход по ссылке, но скрипт не сработает.

Если просто моделируете, то тогда не проще ли заменить тег <a> на какой-нить <span>?
На который повесить один-единственный обработчик onclick и тогда любые иные действия клиента (клики по правой кнопке, по колесику и прочее) будут для скрипта неактуальны - пусть хоть "укликается" весь ваш клиент :-)

   
 
 автор: svk1be   (07.02.2008 в 21:47)   письмо автору
 
   для: CNTv2.0   (07.02.2008 в 18:47)
 

Спасибо конечно, но это не решенее. Вы пользовались файрфксом, оперой или 7-м експлорером ?
Если да, то наверное заметили, что если у мышки есть колесико и оно нажимаеться, то при нажатии колесиком на мышке - открываеться линк в другой ссылки. Вот именно то что меня интересует :)

Спасибо

К стати, почему то в Опере java код срабатывает при кликанье колесиком по умолчанию, видно принцып работы (движок) у нее отличаеться..

   
 
 автор: CNTv2.0   (07.02.2008 в 18:47)   письмо автору
 
   для: svk1be   (07.02.2008 в 16:08)
 

В самом простом случае, можно продублировать всё то, что написано для onclick ещё и для события oncontextmenu. Тогда при "нажал-отпустил" ПРАВУЮ кнопку мыши у вас тоже изменится href (т.е. скрипт выполнится).

Только вот далее... могут быть проблемы. Ибо, вызов контекстного меню отслеживается (как я и написал - oncontextmenu), а вот, что именно вы выбрали в контекстном меню (и выбрали ли) отследить нельзя. Поэтому, представьте - кликнул один раз правой кнопкой, но передумал открывать в новом окне и, закрыв контекстное меню (кликом где-то по странице), решил открыть в текущем - href тогда дважды изменится...
В общем, надо сгородить чего-то, что будет помнить клики (и началное значение href)...
А мне щас лениво...
Если только позже.

   
 
 автор: svk1be   (07.02.2008 в 16:08)   письмо автору
 
   для: CNTv2.0   (07.02.2008 в 14:46)
 

>Так вы обозначьте проблему-то. Что вам надо РЕШИТЬ?

Как сделать, что бы при выборе опции "открыть в новом окне/новой вкладке" в контексном меню линка джава скрипт тоже срабатывал.

   
 
 автор: CNTv2.0   (07.02.2008 в 14:46)   письмо автору
 
   для: svk1be   (05.02.2008 в 19:03)
 

>Почему когда я кликаю правой кнопкой мыши и выбираю открыть в новом окне - оно не срабатывает

Потому что скрипт прописан для события onclick, а onclick - это "нажал-отпустил" ЛЕВУЮ кнопку мыши.


>Можно как то решить эту проблему?

Так вы обозначьте проблему-то. Что вам надо РЕШИТЬ?

   
 
 автор: svk1be   (07.02.2008 в 14:31)   письмо автору
 
   для: svk1be   (05.02.2008 в 19:03)
 

кто нибуть знает? Извените за настойчивость, но это мне очень важно :(
Спасибо..

   
 
 автор: svk1be   (05.02.2008 в 19:03)   письмо автору
 
   для: svk1be   (05.02.2008 в 18:39)
 

Только можно вопросик?
Почему когда я кликаю правой кнопкой мыши и выбираю открыть в новом окне - оно не срабатывает(окно открываеться, но дынные с чекбоксов не передаються :( )? Джава скрипт не позволяет? Можно как то решить эту проблему?

Спс

   
 
 автор: svk1be   (05.02.2008 в 18:39)   письмо автору
 
   для: svk1be   (05.02.2008 в 18:02)
 

Вообщем сделал вот так:

function myFunc (x)
{
  for (var rez = new Array (), obj = document.getElementsByName ('account'), j = 0; j < obj.length; j++){
    if (obj [j].checked){
     rez [rez.length] = obj [j].value;
     x.href += obj [j].value;
     }
   }
}


Заработало то что надо!!!

Еще раз большое спасибо!!!!

   

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования