Nickmenü in der Onlineliste

Fragen zu HTML, CSS, eigenen Erweiterungen etc.
1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Nickmenü in der Onlineliste

Ungelesener Beitrag von 1. FC Keller » 21.07.2011, 14:02

Mit diesem Script wird beim Klick auf einen Nick in der Onlineliste ein Menü geöffnet. In diesem Menü werden dann verschiedene Befehle aufgelistet, die beim Klick auf den Menüpunkt im Eingabeframe erscheinen.

Thx an alle, die beim Scripten und Testen geholfen haben :-)

Aktuelle Version: 1.2

Die Grundscriptsammlung ist Voraussetzung für das Script.
Der folgende Code muss in die erste und dritte Ankündigung:

Code: Alles auswählen

<script language="javascript">ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0;function clkmenu(){ p=parent; r=p.rightFrame.document; s=r.getElementsByTagName("span"); for(i in s){ if((typeof s[i]) != "undefined" && (typeof s[i].parentNode) != "undefined" && s[i].parentNode.title) if(s[i].onclick){ s[i].onclick=function(e){ e=(e?e:parent.rightFrame.event); p.lstClcked=this.parentNode.title.split(" ")[0]; parent.rightFrame.olMenu(e.clientX,e.clientY); return false } } } parent.rightFrame.olMenu = function(xPosition,yPosition){ if(parent.menuTO){ window.clearTimeout(parent.menuTO); } r=parent.rightFrame.document; r.getElementById("menu").style.display=''; with(r.getElementById("menu").style){ position="absolute"; top=yPosition; left=xPosition; } var tds=r.getElementById("menu").getElementsByTagName("td"); var status=parent.mainframe.getStatus(parent.lstClcked); for(var i=0;i<tds.length;i++){ tds[i].parentNode.style.display=''; if(tds[i].className!="input"){ if(status==1 && !tds[i].className.match(/\buser\b/) || status==2 && !tds[i].className.match(/\bmod\b/) || status==3 && !tds[i].className.match(/\badmin\b/))tds[i].parentNode.style.display='none'; } } parent.menuTO = window.setTimeout("parent.rightFrame.document.getElementById('menu').style.display='none'", 4000) }}window.setInterval("clkmenu()",1600);function mkTd(befTxt, clckbef, hinterNick, modus, classes){ p=parent; r=p.rightFrame.document; s=r.getElementsByTagName("span"); tr=r.createElement("tr"); td=r.createElement("td"); if(!modus || modus==1){ eval("td.onclick=function(e){a=parent.info.document.eingabe.message; a.value"+(modus==1?"+":"")+"='"+clckbef+"'+parent.lstClcked"+(hinterNick?"+'"+hinterNick+"'":"")+"; parent.rightFrame.document.getElementById('menu').style.display='none'; a.focus();pos=a.createTextRange(); pos.collapse(false); pos.select();}"); }else if(modus==2){ td.onclick=function(){clckbef(parent.lstClcked)}; } bef=r.createTextNode(befTxt); td.className="input"+(classes?" "+classes:""); td.appendChild(bef); tr.appendChild(td); tbdy.appendChild(tr)}function createTable(){ if(parent.rightFrame.document && !parent.rightFrame.document.getElementById("menu")){ tbl=r.createElement("table"); tbl.style.border="1px dotted #000000"; tbl.style.display="none"; tbl.className="input"; tbl.style.zIndex="10"; tbl.setAttribute("id", "menu"); tbdy=r.createElement("tbody"); tbl.appendChild(tbdy); mkTd(unescape("Fl%FCstern"),"/f ", " "); if(typeof starteFWin != "undefined") mkTd(unescape("Fl%FCsterfenster"), starteFWin, 0, 2); mkTd(unescape("Nick einf%FCgen"), "", "", 1); mkTd("Anschreiben", "/me sagt zu ", ":"); if(myStatus>=1){ mkTd("PM","/pm ", " ", 0, 0, "user mod admin"); if(typeof vgBefehlsAuswertung != "undefined") mkTd("4 Gewinnt", "/4gewinnt ", 0, 0, "user mod admin"); if(typeof dameBefehlsAuswertung != "undefined") mkTd("Dame", "/dame ", 0, 0, "user mod admin"); if(typeof osBefehlsAuswertung != "undefined") mkTd("Offiziersskat", "/os ", 0, 0, "user mod admin"); if(typeof muehleBefehlsAuswertung != "undefined") mkTd(unescape("M%FChle"), "/muehle ", 0, 0, "user mod admin"); if(typeof tttBefehlsAuswertung != "undefined") mkTd("TicTacToe", "/ttt ", 0, 0, "user mod admin"); if(typeof ignoreUser != "undefined") mkTd("ignorieren", "/ignore "); } if(myStatus>=2){ mkTd("Restore","/restore ", " #0000ff", 0, "user"+(myStatus==3?" mod":"")); mkTd("IP anzeigen","/rmip ", 0, 0, "user"+(myStatus==3?" mod":"")); mkTd("Knebel","/knebel ", 0, 0, "user"+(myStatus==3?" mod":"")); mkTd("Move","/move ", " ", 0, "user"+(myStatus==3?" mod":"")); mkTd("Kick","/kick ", 0, 0, "user"+(myStatus==3?" mod":"")); mkTd("Bann","/bann ", 0, 0, "user"+(myStatus==3?" mod":"")); } if(myStatus==3){ mkTd("Mod ernennen","/makemod ", 0, 0, "user"); mkTd("Mod entziehen", "/modkick ", 0, 0, "mod"); } if(myNick==chatTeam[2]){ mkTd("Admin ernennen","/makeadmin ", 0, 0, "user mod"); mkTd("Admin entziehen", "/adminkick ", 0, 0, "admin"); } r.body.appendChild(tbl); }}window.setInterval("createTable()",1600);function getStatus(nick){ nick=nick.toLowerCase(); if(chatTeam[2].toLowerCase()==nick)return 3; for(i=0;i<chatTeam[1].length;i++)if(chatTeam[1][i].toLowerCase()==nick)return 3; for(var i=0;i<chatTeam[0].length;i++)if(chatTeam[0][i].toLowerCase()==nick)return 2; return 1;}</script>
Anpassen kann man den Style des Menüs:

Code: Alles auswählen

tbl.style.border="1px dotted #000000"; tbl.style.color="#000000"; tbl.style.backgroundColor="#ff6600";
Weiterhin sind die Menüpunkte anpassbar. 3. und 4. Parameter sind optional. Wenn man einen 3. Parameter angibt, so erscheint der hier angegebene Text hinter dem Nick. Wenn man als 4. Parameter eine 1 angibt, dann ersetzt der Text nicht den im Eingabefeld, sondern wird hinten angefügt... Bei Befehlen wie /f wird das weniger Sinnvoll sein. Es sind allerdings auch Menüpunkte denkbar, die zum Beispiel nur den Nick oder, wie von hamigra gewünscht, "Nicksmilies" in das Eingabefeld einfügen.

Code: Alles auswählen

mkTd("Flüstern","/f ", " ");mkTd("Nick einfügen", "", "", 1); mkTd("Anschreiben", "/me sagt zu ", ":"); if(myStatus>=1){ mkTd("PM","/pm ", " ");} if(myStatus>=2){ mkTd("Restore","/restore ", " #0000ff"); mkTd("IP anzeigen","/rmip "); mkTd("Knebel","/knebel "); mkTd("Move","/move ", " "); mkTd("Kick","/kick "); mkTd("Bann","/bann ");} if(myStatus==3){ mkTd("Mod ernennen","/makemod "); mkTd("Mod entziehen", "/modkick ");}
Der Flüsterbefehl, "Nick einfügen" und "Anschreiben" wird hier grundsätzlich eingesetzt, PM für alles ab registriertem User, restore, rmip, knebel, move, kick und bann ab Moderator und makemod sowie modkick nur für Admins. Durch Ergänzen oder Entfernen von mkTd("TEXT", "/BEFEHL ") - Aufrufen kann das Menü um Punkte erweitert bzw. verkürzt werden.

Für die, die lieber js-Dateien verwenden als so lange Codes in die Ankündigung zu kopieren hier auch nochmal eine strukturierte Version des Codes:

Code: Alles auswählen

ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0;

function clkmenu(){

  p=parent;

  r=p.rightFrame.document;

  s=r.getElementsByTagName("span");

  for(i in s){

    if((typeof s[i]) != "undefined" && (typeof s[i].parentNode) != "undefined" && s[i].parentNode.title)

    if(s[i].onclick){

      s[i].onclick=function(e){

      e=(e?e:parent.rightFrame.event);

      p.lstClcked=this.parentNode.title.split(" ")[0];

      parent.rightFrame.olMenu(e.clientX,e.clientY);

      return false

      }

    }

  }

  parent.rightFrame.olMenu = function(xPosition,yPosition){

    if(parent.menuTO){

      window.clearTimeout(parent.menuTO);

    }

    r=parent.rightFrame.document;

    r.getElementById("menu").style.display='';

    with(r.getElementById("menu").style){

      position="absolute"; top=yPosition; left=xPosition;

    }
    var tds=r.getElementById("menu").getElementsByTagName("td");
    var status=parent.mainframe.getStatus(parent.lstClcked);
    for(var i=0;i<tds.length;i++){
      tds[i].parentNode.style.display='';
      if(tds[i].className!="input"){
        if(status==1 && !tds[i].className.match(/\buser\b/) ||
           status==2 && !tds[i].className.match(/\bmod\b/) ||
           status==3 && !tds[i].className.match(/\badmin\b/))tds[i].parentNode.style.display='none';
      }
    }

    parent.menuTO = window.setTimeout("parent.rightFrame.document.getElementById('menu').style.display='none'", 4000)

  }

}

window.setInterval("clkmenu()",1600);

function mkTd(befTxt, clckbef, hinterNick, modus, classes){

  p=parent;

  r=p.rightFrame.document;

  s=r.getElementsByTagName("span");

  tr=r.createElement("tr");

  td=r.createElement("td");
  if(!modus || modus==1){

    eval("td.onclick=function(e){a=parent.info.document.eingabe.message; a.value"+(modus==1?"+":"")+"='"+clckbef+"'+parent.lstClcked"+(hinterNick?"+'"+hinterNick+"'":"")+"; parent.rightFrame.document.getElementById('menu').style.display='none'; a.focus();pos=a.createTextRange(); pos.collapse(false); pos.select();}");
  }else if(modus==2){
    td.onclick=function(){clckbef(parent.lstClcked)};
  }

  bef=r.createTextNode(befTxt);

  td.className="input"+(classes?" "+classes:"");

  td.appendChild(bef);

  tr.appendChild(td);

  tbdy.appendChild(tr)

}

function createTable(){

  if(parent.rightFrame.document && !parent.rightFrame.document.getElementById("menu")){

    tbl=r.createElement("table");

    tbl.style.border="1px dotted #000000";

//    tbl.style.color="#000000";

//    tbl.style.backgroundColor="#ff6600";

    tbl.style.display="none";

    tbl.className="input";

    tbl.style.zIndex="10";

    tbl.setAttribute("id", "menu");

    tbdy=r.createElement("tbody");

    tbl.appendChild(tbdy);

    mkTd(unescape("Fl%FCstern"),"/f ", " ");

    if(typeof starteFWin != "undefined")

      mkTd(unescape("Fl%FCsterfenster"), starteFWin, 0, 2);

    mkTd(unescape("Nick einf%FCgen"), "", "", 1);

    mkTd("Anschreiben", "/me sagt zu ", ":");

    if(myStatus>=1){

      mkTd("PM","/pm ", " ", 0, 0, "user mod admin");

      if(typeof vgBefehlsAuswertung != "undefined")

	mkTd("4 Gewinnt", "/4gewinnt ", 0, 0, "user mod admin");

      if(typeof dameBefehlsAuswertung != "undefined")

	mkTd("Dame", "/dame ", 0, 0, "user mod admin");

      if(typeof osBefehlsAuswertung != "undefined")

	mkTd("Offiziersskat", "/os ", 0, 0, "user mod admin");

      if(typeof muehleBefehlsAuswertung != "undefined")

	mkTd(unescape("M%FChle"), "/muehle ", 0, 0, "user mod admin");

      if(typeof tttBefehlsAuswertung != "undefined")

	mkTd("TicTacToe", "/ttt ", 0, 0, "user mod admin");

      if(typeof ignoreUser != "undefined")

	mkTd("ignorieren", "/ignore ");

    }

    if(myStatus>=2){

      mkTd("Restore","/restore ", " #0000ff", 0, "user"+(myStatus==3?" mod":""));

      mkTd("IP anzeigen","/rmip ", 0, 0, "user"+(myStatus==3?" mod":""));

      mkTd("Knebel","/knebel ", 0, 0, "user"+(myStatus==3?" mod":""));

      mkTd("Move","/move ", " ", 0, "user"+(myStatus==3?" mod":""));

      mkTd("Kick","/kick ", 0, 0, "user"+(myStatus==3?" mod":""));

      mkTd("Bann","/bann ", 0, 0, "user"+(myStatus==3?" mod":""));

    }

    if(myStatus==3){

      mkTd("Mod ernennen","/makemod ", 0, 0, "user");

      mkTd("Mod entziehen", "/modkick ", 0, 0, "mod");

    }

    if(myNick==chatTeam[2]){

      mkTd("Admin ernennen","/makeadmin ", 0, 0, "user mod");

      mkTd("Admin entziehen", "/adminkick ", 0, 0, "admin");

    }

    r.body.appendChild(tbl);

  }

}

window.setInterval("createTable()",1600);

function getStatus(nick){
  nick=nick.toLowerCase();
  if(chatTeam[2].toLowerCase()==nick)return 3;
  for(i=0;i<chatTeam[1].length;i++)if(chatTeam[1][i].toLowerCase()==nick)return 3;
  for(var i=0;i<chatTeam[0].length;i++)if(chatTeam[0][i].toLowerCase()==nick)return 2;
  return 1;
}

Versions-History:
Version 1.2:
- Die Menüeinträge werden nun nichtmehr nur abhängig vom eigenen, sondern auch von dem Status des geklickten Users angezeigt. So wird z.B. bei Admins kein kick- oder move-Befehl eingeblendet, da sie sowieso nicht gegen Admins benutzt werden können.
- Es wurden automatische Erkennungen für die Spiele Offiziersskat, Mühle und TicTacToe sowie für das Ignorier-Script und das Flüsterfenster hinzugefügt
Version 1.1: Fix für eventuelle Zeichensatz-Probleme: Umlaute werden per URL-Code eingesetzt und per unescape umgewandelt.
Außerdem werden die Spiele Dame und 4 Gewinnt automatisch erkannt. Falls sie im Chat eingebunden sind wird dafür entsprechend ein Menü-Eintrag für registrierte User angezeigt.
Version 1.0: erste Veröffentlichung. Enthalten sind folgende Menüeinträge:
- für alle User und Gäste: flüstern, Nick einfügen, Anschreiben
- für registrierte User: PM
- für Mods: Restore, IP anzeigen, Knebel, Move, Kick, Bann
- für Admins: Mod ernennen, Mod entziehen

Version 1.1
Script:Zeigen

Code: Alles auswählen

ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0;

function clkmenu(){

  p=parent;

  r=p.rightFrame.document;

  s=r.getElementsByTagName("span");

  for(i=0;i<s.length;i++){

    if((typeof s[i]) != "undefined" && (typeof s[i].parentNode) != "undefined" && s[i].parentNode.title)

    if(s[i].onclick){

      s[i].onclick=function(e){

      e=(e?e:parent.rightFrame.event);

      p.lstClcked=this.parentNode.title.split(" ")[0];

      parent.rightFrame.olMenu(e.clientX,e.clientY);

      return false

      }

    }

  }

  parent.rightFrame.olMenu = function(xPosition,yPosition){

    if(parent.menuTO){

      window.clearTimeout(parent.menuTO);

    }

    r=parent.rightFrame.document;

    r.getElementById("menu").style.display=(ie?"block":"table");

    with(ie?r.all.menu.style:r.getElementById("menu").style){

      position="absolute"; top=yPosition; left=xPosition;

    }

    parent.menuTO = window.setTimeout("parent.rightFrame.document.getElementById('menu').style.display='none'", 4000)

  }

}

window.setInterval("clkmenu()",1600);

function mkTd(befTxt, clckbef, hinterNick, anfuegen){

  p=parent;

  r=p.rightFrame.document;

  s=r.getElementsByTagName("span");

  tr=r.createElement("tr");

  td=r.createElement("td");

  eval("td.onclick=function(e){a=parent.info.document.eingabe.message; a.value"+(anfuegen?"+":"")+"='"+clckbef+"'+parent.lstClcked"+(hinterNick?"+'"+hinterNick+"'":"")+"; parent.rightFrame.document.getElementById('menu').style.display='none'; a.focus();pos=a.createTextRange(); pos.collapse(false); pos.select();}");

  bef=r.createTextNode(befTxt);

  td.className="input";

  td.appendChild(bef);

  tr.appendChild(td);

  tbdy.appendChild(tr)

}

function createTable(){

  if(parent.rightFrame.document && !parent.rightFrame.document.getElementById("menu")){

    tbl=r.createElement("table");

    tbl.style.border="1px dotted #000000";

//    tbl.style.color="#000000";

//    tbl.style.backgroundColor="#ff6600";

    tbl.style.display="none";

    tbl.className="input";

    tbl.style.zIndex="10";

    tbl.setAttribute("id", "menu");

    tbdy=r.createElement("tbody");

    tbl.appendChild(tbdy);

    mkTd(unescape("Fl%FCstern"),"/f ", " ");

    mkTd(unescape("Nick einf%FCgen"), "", "", 1);

    mkTd("Anschreiben", "/me sagt zu ", ":");

    if(myStatus>=1){

      mkTd("PM","/pm ", " ");

      if(typeof vgBefehlsAuswertung != "undefined")

	mkTd("4 Gewinnt", "/4gewinnt ");

      if(typeof dameBefehlsAuswertung != "undefined")

	mkTd("Dame", "/dame ");

      if(typeof ignoreUser != "undefined")

	mkTd("ignorieren", "/ignore ");

    }

    if(myStatus>=2){

      mkTd("Restore","/restore ", " #0000ff");

      mkTd("IP anzeigen","/rmip ");

      mkTd("Knebel","/knebel ");

      mkTd("Move","/move ", " ");

      mkTd("Kick","/kick ");

      mkTd("Bann","/bann ");

    }

    if(myStatus==3){

      mkTd("Mod ernennen","/makemod ");

      mkTd("Mod entziehen", "/modkick ");

    }

    r.body.appendChild(tbl);

  }

}

window.setInterval("createTable()",1600);
Version 1.0
Script:Zeigen

Code: Alles auswählen

ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0;
function clkmenu(){
  p=parent;
  r=p.rightFrame.document;
  s=r.getElementsByTagName("span");
  for(i=0;i<s.length;i++){
    if(s[i].onclick){
      s[i].onclick=function(e){
      e=(e?e:parent.rightFrame.event);
      p.lstClcked=this.parentNode.title.split(" ")[0];
      parent.rightFrame.olMenu(e.clientX,e.clientY);
      return false
      }
    }
  }
  parent.rightFrame.olMenu = function(xPosition,yPosition){
    if(parent.menuTO){
      window.clearTimeout(parent.menuTO);
    }
    r=parent.rightFrame.document;
    r.getElementById("menu").style.display=(ie?"block":"table"); 
    with(ie?r.all.menu.style:r.getElementById("menu").style){
      position="absolute"; top=yPosition; left=xPosition;
    } 
    parent.menuTO = window.setTimeout("parent.rightFrame.document.getElementById('menu').style.display='none'", 4000)
  }
}
window.setInterval("clkmenu()",1600);
function mkTd(befTxt, clckbef, hinterNick, anfuegen, fntCol){
  p=parent;
  r=p.rightFrame.document;
  s=r.getElementsByTagName("span");
  tr=r.createElement("tr");
  td=r.createElement("td");
  eval("td.onclick=function(e){a=parent.info.document.eingabe.message; a.value"+(anfuegen?"+":"")+"='"+clckbef+"'+parent.lstClcked"+(hinterNick?"+'"+hinterNick+"'":"")+"; parent.rightFrame.document.getElementById('menu').style.display='none'; a.focus();pos=a.createTextRange(); pos.collapse(false); pos.select();}");
  if(fntCol)td.style.color=fntCol; 
  bef=r.createTextNode(befTxt);
  td.appendChild(bef);
  tr.appendChild(td);
  tbdy.appendChild(tr)
}
function createTable(){
  if(parent.rightFrame.document && !parent.rightFrame.document.getElementById("menu")){
    tbl=r.createElement("table");
    tbl.style.border="1px dotted #000000";
    tbl.style.color="#000000";
    tbl.style.backgroundColor="#ff6600";
    tbl.style.display="none";
    tbl.setAttribute("id", "menu");
    tbdy=r.createElement("tbody");
    tbl.appendChild(tbdy);
    mkTd("Flüstern","/f ", " ");
    mkTd("Nick einfügen", "", "", 1);
    mkTd("Anschreiben", "/me sagt zu ", ":");
    if(myStatus>=1){
      mkTd("PM","/pm ", " "); 
    } 
    if(myStatus>=2){
      mkTd("Restore","/restore ", " #0000ff");
      mkTd("IP anzeigen","/rmip ");
      mkTd("Knebel","/knebel ");
      mkTd("Move","/move ", " ");
      mkTd("Kick","/kick ");
      mkTd("Bann","/bann ");
    }
    if(myStatus==3){
      mkTd("Mod ernennen","/makemod ");
      mkTd("Mod entziehen", "/modkick ");
    }
    r.body.appendChild(tbl);
  }
}
window.setInterval("createTable()",1600);
Das ist eine Kopie des Threads aus dem alten Forum - kein neues Script ;-)

Benutzeravatar
Hermann
Beiträge: 129
Registriert: 04.11.2009, 16:11
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von Hermann » 22.07.2011, 13:41

Script:Zeigen
<script language="javascript">ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0; function clkmenu(){p=parent; r=p.rightFrame.document; s=r.getElementsByTagName("span"); for(i=0;i<s.length;i++){ if(s.onclick){ s.onclick=function(e){ e=(e?e:parent.rightFrame.event); p.lstClcked=this.parentNode.title.split(" ")[0]; parent.rightFrame.olMenu(e.clientX,e.clientY);return false}}} parent.rightFrame.olMenu = function(xPosition,yPosition){if(parent.menuTO) {window.clearTimeout(parent.menuTO);} r=parent.rightFrame.document; r.getElementById("menu").style.display=(ie?"block":"table"); with(ie?r.all.menu.style:r.getElementById("menu").style){position="absolute"; top=yPosition; left=xPosition;} parent.menuTO=window.setTimeout("parent.rightFrame.document.getElementById('menu').style.display='none'", 4000)}} window.setInterval("clkmenu()",1600); function mkTd(befTxt, clckbef, hinterNick, anfuegen, fntCol){ p=parent; r=p.rightFrame.document; s=r.getElementsByTagName("span"); tr=r.createElement("tr"); td=r.createElement("td"); eval("td.onclick=function(e){a=parent.info.document.eingabe.message; a.value"+(anfuegen?"+":"")+"='"+clckbef+"'+parent.lstClcked"+(hinterNick?"+'"+hinterNick+"'":"")+"; parent.rightFrame.document.getElementById('menu').style.display='none'; a.focus();pos=a.createTextRange(); pos.collapse(false); pos.select();}"); if(fntCol)td.style.color=fntCol; bef=r.createTextNode(befTxt); td.appendChild(bef); tr.appendChild(td); tbdy.appendChild(tr)} function createTable(){ if(parent.rightFrame.document && !parent.rightFrame.document.getElementById("menu")){ tbl=r.createElement("table"); tbl.style.border="1px dotted #000000"; tbl.style.color="#000000"; tbl.style.backgroundColor="#ff6600"; tbl.style.display="none"; tbl.style.zIndex=1; tbl.setAttribute("id", "menu"); tbdy=r.createElement("tbody"); tbl.appendChild(tbdy); mkTd("Flüstern","/f ", " ");mkTd("Nick einfügen", "", "", 1); mkTd("Anschreiben", "/me sagt zu ", ":"); if(myStatus>=1){ mkTd("PM","/pm ", " ");} if(myStatus>=2){ mkTd("Restore","/restore ", " #0000ff"); mkTd("IP anzeigen","/rmip "); mkTd("Knebel","/knebel "); mkTd("Move","/move ", " "); mkTd("Kick","/kick "); mkTd("Bann","/bann ");} if(myStatus==3){ mkTd("Mod ernennen","/makemod "); mkTd("Mod entziehen", "/modkick ");} r.body.appendChild(tbl); }} window.setInterval("createTable()",1600);</script>


Warum geht der Script nur bei mir in der 3. Ankündigung? Wenn ich ihn in die 1. Ankündigung mache kann ich die Befehle im Menü nicht anklicken. Wenn ich ihn in die 3. Ankündigung mache ist da nur "Flüstern Nick einfügen und Anschreiben" im Menü.

Gruß, Hermann

Benutzeravatar
FlorensiaFans
Beiträge: 59
Registriert: 10.03.2011, 11:14
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von FlorensiaFans » 27.07.2011, 10:40

kann ich da so etwas einfügen das ein Link ( für Normale User Mod und Admin sichtbar) zu einem Forum sich per Popup öffnet

ich verwende das Tool von wktools

Danke
Wenn ein Leichenwagenfahrer eine Leiche transportiert braucht er dann einen Personenbeförderungsschein?

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von 1. FC Keller » 27.07.2011, 23:23

@herrman: die dritte ist die gastankündigung. wenn du als gast einloggst dann funktioniert das script logischerweise nur wenn sie in der dritten ankündigung ist. da gäste keine befehle wie pm, kick etc. nutzen können ist es auch absolut richtig, dass dort nur die 3 Menüpunkte angezeigt werden.
In der ersten Ankündigung hast du es wahrscheinlich irgendwie falsch eingebaut.

@FlorensiaFans: nein, das geht nicht ohne weiteres... dafür müsste man das script umschreiben.

Benutzeravatar
Hermann
Beiträge: 129
Registriert: 04.11.2009, 16:11
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von Hermann » 03.08.2011, 14:12

@ 1. FC Keller:

Danke. Es passt jetzt. Habs rausgenommen und wieder reingemacht auf einmal ging es.
Zuletzt geändert von Hermann am 03.08.2011, 14:30, insgesamt 1-mal geändert.

Benutzeravatar
harry2109
Beiträge: 336
Registriert: 10.01.2010, 15:05
Wohnort: Nordhorn
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von harry2109 » 03.08.2011, 14:23

Moin Moin Also ich nutze das script auch in meinem chat und muß sagen es funzt Tadellos !
Solltet ihr Rechtschreibfehler finden könnt ihr sie behalten denn ich Brauch sie nicht!

www.harry2109.de

Brause-Junior

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von Brause-Junior » 16.08.2011, 19:43

Welche Zahl muss man nochmal ändern um zu bestimmen wie lange es sichtbar ist?

Benutzeravatar
Linus
Moderator
Beiträge: 1124
Registriert: 14.02.2005, 20:31
Wohnort: NRW
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von Linus » 16.08.2011, 20:40

parent.menuTO = window.setTimeout("parent.rightFrame.document.getElementById('menu').style.display='none'", 4000)
Kein Support per PN!

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von 1. FC Keller » 20.08.2011, 15:30

ich habe vor längerer Zeit schon mal das Nickmenü überarbeitet, damit es mit anderen Scripts, wie z.B. Spielen zusammen funktioniert (ohne dass sich das Menü öffnet wenn man auf das Spiel in der OL klickt)

irgendwie habe ich wohl versäumt, es zu veröffentlichen.
Hier ist es:

Code: Alles auswählen

ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0;

function clkmenu(){

  p=parent;

  r=p.rightFrame.document;

  s=r.getElementsByTagName("span");

  for(i=0;i<s.length;i++){

    if((typeof s[i]) != "undefined" && (typeof s[i].parentNode) != "undefined" && s[i].parentNode.title)

    if(s[i].onclick){

      s[i].onclick=function(e){

      e=(e?e:parent.rightFrame.event);

      p.lstClcked=this.parentNode.title.split(" ")[0];

      parent.rightFrame.olMenu(e.clientX,e.clientY);

      return false

      }

    }

  }

  parent.rightFrame.olMenu = function(xPosition,yPosition){

    if(parent.menuTO){

      window.clearTimeout(parent.menuTO);

    }

    r=parent.rightFrame.document;

    r.getElementById("menu").style.display=(ie?"block":"table");

    with(ie?r.all.menu.style:r.getElementById("menu").style){

      position="absolute"; top=yPosition; left=xPosition;

    }

    parent.menuTO = window.setTimeout("parent.rightFrame.document.getElementById('menu').style.display='none'", 4000)

  }

}

window.setInterval("clkmenu()",1600);

function mkTd(befTxt, clckbef, hinterNick, anfuegen){

  p=parent;

  r=p.rightFrame.document;

  s=r.getElementsByTagName("span");

  tr=r.createElement("tr");

  td=r.createElement("td");

  eval("td.onclick=function(e){a=parent.info.document.eingabe.message; a.value"+(anfuegen?"+":"")+"='"+clckbef+"'+parent.lstClcked"+(hinterNick?"+'"+hinterNick+"'":"")+"; parent.rightFrame.document.getElementById('menu').style.display='none'; a.focus();pos=a.createTextRange(); pos.collapse(false); pos.select();}");

  bef=r.createTextNode(befTxt);

  td.className="input";

  td.appendChild(bef);

  tr.appendChild(td);

  tbdy.appendChild(tr)

}

function createTable(){

  if(parent.rightFrame.document && !parent.rightFrame.document.getElementById("menu")){

    tbl=r.createElement("table");

    tbl.style.border="1px dotted #000000";

//    tbl.style.color="#000000";

//    tbl.style.backgroundColor="#ff6600";

    tbl.style.display="none";

    tbl.className="input";

    tbl.style.zIndex="10";

    tbl.setAttribute("id", "menu");

    tbdy=r.createElement("tbody");

    tbl.appendChild(tbdy);

    mkTd(unescape("Fl%FCstern"),"/f ", " ");

    mkTd(unescape("Nick einf%FCgen"), "", "", 1);

    mkTd("Anschreiben", "/me sagt zu ", ":");

    if(myStatus>=1){

      mkTd("PM","/pm ", " ");

      if(typeof vgBefehlsAuswertung != "undefined")

	mkTd("4 Gewinnt", "/4gewinnt ");

      if(typeof dameBefehlsAuswertung != "undefined")

	mkTd("Dame", "/dame ");

      if(typeof ignoreUser != "undefined")

	mkTd("ignorieren", "/ignore ");

    }

    if(myStatus>=2){

      mkTd("Restore","/restore ", " #0000ff");

      mkTd("IP anzeigen","/rmip ");

      mkTd("Knebel","/knebel ");

      mkTd("Move","/move ", " ");

      mkTd("Kick","/kick ");

      mkTd("Bann","/bann ");

    }

    if(myStatus==3){

      mkTd("Mod ernennen","/makemod ");

      mkTd("Mod entziehen", "/modkick ");

    }

    r.body.appendChild(tbl);

  }

}

window.setInterval("createTable()",1600);

Brause-Junior

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von Brause-Junior » 21.08.2011, 00:19

Vielen Dank, klappt jetzt wieder alles.

lenny2010
Beiträge: 1
Registriert: 30.10.2011, 18:31

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von lenny2010 » 30.10.2011, 18:39

Hallo ich Finde das Nickmenu spitze und bis auf eine Sache funktioniert das ganze auch tadellos.

Edit: war mein Fehler nun geht es ! Sorry

Vielen Dank in Voraus

Curuba
Beiträge: 48
Registriert: 13.03.2010, 13:20

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von Curuba » 02.11.2011, 17:47

1. FC Keller hat geschrieben: Anpassen kann man den Style des Menüs:

Code: Alles auswählen

tbl.style.border="1px dotted #000000"; tbl.style.color="#000000"; tbl.style.backgroundColor="#ff6600";
Wie genau muss ich das anpassen damit ein Hintergrundbild im Menü ist und nicht nur eine Farbe?

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von 1. FC Keller » 02.11.2011, 19:06

Code: Alles auswählen

tbl.style.border="1px dotted #000000"; tbl.style.color="#000000"; tbl.style.backgroundImage="url(http://deineDomain.de/hintergrundbild.gif)";

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von 1. FC Keller » 03.12.2011, 01:26

Ich habe eben eine neue Version eingestellt.
Enthalten sind mehr Spiele und das Flüsterfenster, die automatisch erkannt werden (die Menüeinträge werden nur angezeigt wenn das Script dazu auch im Chat eingebunden ist).
Außerdem können nun die Befehle nicht nur abhängig vom eigenen Status eingeblendet werden, sondern auch abhängig vom Status des geklickten Users. Z.B. wird Modkick nur noch angezeigt wenn man selbst Admin ist und der geklickte User ein Mod ist. Makemod wird angezeigt wenn man Admin ist und der geklickte ist normaler User.
Gäste werden dabei bisher nicht erkannt... es ist also nicht möglich, z.B. die Spiele oder den Flüsterbefehl auszublenden wenn man auf einen Gast geklickt hat.

Getestet habe ich nur im aktuellen FF... ein paar Testberichte aus anderen Browsern wären schön :-)

Benutzeravatar
Mogli
Beiträge: 485
Registriert: 18.10.2010, 23:42
Wohnort: Bayern
Kontaktdaten:

Re: Nickmenü in der Onlineliste

Ungelesener Beitrag von Mogli » 03.12.2011, 17:14

Hallo 1. FC Keller,

danke für die neuen Skripte. Diese 2 Zeilen gefalln mir sehr gut, die standardmassig deaktiviert sind:

Code: Alles auswählen

//    tbl.style.color="#000000";
//    tbl.style.backgroundColor="#ff6600";
Ist das normal, daß bei Gästen auch die Möglichkeit angeboten wird, sie zum Mod ernennen zu können? Ich habe die Version 1.1 (Spiele werden erkannt und Befehle ggf. aufgelistet)

Getestet hab ich im FF 8, Iron 12 und IE 9. Bis auf o.g. Kleinigkeit läuft das Skript in allen Browsern ohne Probleme! :-)

Schöne Grüße
Mogli

Antworten

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 48 Gäste