Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 13.01.2010
Сообщений: 129
1

Замена стандартного context menu

18.02.2010, 01:41. Показов 2794. Ответов 1
Метки нет (Все метки)

Доброе время суток.Подскажите кто знает как сделать, чтобы при правом клике мыши по ссылке, открывалось не стандартное меню, а собственное.Допустим оно будет иметь всего 1 строчку.
Я пишу чат на php.Есть фрейм со списком юзеров-онлайн, которые выводятся в виде ссылок.В этих ссылках онклик вызывает функцию, которая вставляет ник юзера в строку ввода сообщения.После щелчка на ник это поле выглядит так:
to [nick]:
Приватные сообщения уже полностью реализованы, но так как онклик уже занят, решил что надо сделать своё меню по нажатию правой кнопки, в котором собственно и будет слово prv, при нажатии которого сработает функция, вставляющая в поле сообщения prv [nick]:
Так как в js я чайник, возникает сразу несколько вопросов.
Во-первых как запретить стандартное меню(OnContextMenu='return false;') и одновременно с этим указать что надо показать своё меню?
Во-вторых как сделать так, чтобы менюшка открывалась так же, как и стандартное контекст-меню(тоесть у той же ссылки, по которой мы щёлкнули).
Ну и ещё всё усложняется тем, что у каждой ссылки(ника) свои значения, которые должны передаваться в 2 функции.Тоесть когда мы нажимаем на определённый ник правым кликом, надо чтоб функция,которая отображает меню, получила никнейм на который был щелчок, а потом при нажатии в появившемся меню на слово prv, уже передала бы этот ник функции, которая собственно и вставит этот ник в поле с сообщением.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2010, 01:41
Ответы с готовыми решениями:

Context menu или?
Задача заключаеться в следующем, есть поле textbox как сделать так чтобы при нажатии правой кнопки...

Аналог context menu
Всем привет. Я пишу судоку. Проблема в том что при взаимодействии с ячейкой вызывается новое...

Context Menu и DataTemplate
Возможно ли привязать Context Menu к элементу определённому в DataTemplate? Проблема в том, что у...

Context menu Windows
Доброго времени суток, сел писать программу, вопрос заключается в следующем. Понадобилось добавить...

1
0 / 0 / 2
Регистрация: 13.01.2010
Сообщений: 129
19.02.2010, 12:26  [ТС] 2
Лучший ответ Сообщение было отмечено zemelea как решение

Решение

Решил немного упростить, так как сам не знаю как это сделать, а тут никто не отвечает)).Вобщем я изменил событие onClick.Теперь по его нажатию запускается функция, которая показывает невидимое меню.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
session_start();
$login=$_SESSION['login'];
$db=mysql_connect ("localhost","root","");
mysql_select_db ("new_1",$db);
mysql_query("SET NAMES utf8");
$result= mysql_query ("SELECT * FROM chat WHERE prv_or_to!='prv' AND msg!='' OR to_user='$login' AND msg!='' OR from_user='$login' AND msg!=''");
$myrow = mysql_fetch_array($result);
   if (mysql_num_rows($result)!==0){
         do {
          $from= $myrow['from_user'];
          $to= $myrow['to_user'];
          $prv_or_to = $myrow['prv_or_to'];
              if ($from==$login or $to==$login){
                  if ($prv_or_to=='prv'){
                     $style = "<font style='background-color:red'; font-style:oblique'>";
                  }
                  if ($prv_or_to=='to') {
                     $style = "<font style='background-color:#00FF99; font-style:oblique'>";
                  }
                  if ($prv_or_to=='' and $from==$login) {
                     $style = "<font style='background-color:#00FF99; font-style:oblique'>";
                  }
              }
              else {
                $style = "<font style='background-color:#ffffff'>";
              }
              if ($myrow['to_user']!==''){
                  $user='['.$myrow['to_user'].']';
              }
              if ($myrow['to_user']==''){
                  $user='';
              }
           echo $style.$myrow['vremea']."</font> <a href='#'  onclick='show (\"$from\");'>[".$from."]</a>".$prv_or_to."<a href='#' onclick='show (\"$to\");'>".$user."</a>: ".$myrow['msg']."<br>"; //Вот собственно и список ников в виде ссылок + сообщения.
           }
       while ($myrow = mysql_fetch_array($result));
    }
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
function show (){
    if (window.parent.messages.document.getElementById('div_1').style.display == 'none'){
     window.parent.messages.document.getElementById('div_1').style.display = 'block';
    }
    else {
    window.parent.messages.document.getElementById('div_1').style.display = 'none';
    }
            
}
function insert (nick){
    window.parent.type.document.form_1.msg.value = 'to ['+nick+']: ';
}
HTML5
1
2
3
4
<div id="div_1" style="display: none">
<a href="#" onClick="insert (nick);">TO</a></br>
<a href="#" onClick="insert (nick);">prv</a>
</div>
Проблема в том, что я не знаю как передать ник в функцию, которая должна вставить его в поле сообщения.Тоесть видим в чате ник->кликаем->открывается меню с выбором (prv или to)->кликаем к примеру на to-> В поле для сообщения появилось 'to [nick]'.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2010, 12:26

Блокирование context menu в WebBrowser
Есть задача: создать браузер, в котором можно будет только смотреть, но сохранить или распечатать -...

Explorer Context Menu in WPF
Добрый день. Имеется следующий вопрос: Есть приложение WPF, в которое необходимо добавить...

'Context Menu Platinum' просит денег
У меня Windows XP. Я установил BSPlayer Pro, и при нажатии правой клавишей по группе файлов в Мой...

Можно ли использовать textbox как context menu item
Коллеги, подскажите. Существует ли способ добавить textbox как елемент context menu? Примером...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.