Problem mit sendeText: <script>

Fragen zu HTML, CSS, eigenen Erweiterungen etc.
Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Problem mit sendeText: <script>

Ungelesener Beitrag von Maxs » 22.07.2010, 14:04

Hallo ;)
Gibt es irgendeine Möglichkeit, dass per sendeText Scripts gesendet werden? Die Funktion sendeText ist bei mir in einer Scriptdatei, dort möchte, dass ein User (nicht nur Admins!) ein Script in den Text sendet. Doch das funktioniert natürlich nicht, wie ich erst ein bisschen spät rausgefunden habe (Da normale User ja keine Scripts normal in den Chatstream posten können). Gibt es irgendeine möglichkeit, außer einen Chatbefehl anzulegen? Ich möchte nur, das ein Text in den Stream gepostet wird und sofort verschwindet.
Also z.B. so mein Script:
Script:Zeigen

Code: Alles auswählen

sendeText("Test"+hideMsg()); 
hideMsg = function () { 
 tbls = document.getElementsByTagName("table");
 tbls[tbls.length-1].style.display="none";
}
oder:

Code: Alles auswählen

sendeText("Test"+"<script"+">tbls = document.getElementsByTagName('table');tbls[tbls.length-1].style.display='none';</script"+">"); 
Das funktioniert ja nicht, da normale User keine Scripts senden können.
Ist das irgendwie anders möglich? Kann ich vielleicht irgendwie eine eigene sendeText()-Funktion für mich schreiben, in der die Funktion hideMsg() eingebaut ist?

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

Re: Problem mit sendeText: <script>

Ungelesener Beitrag von 1. FC Keller » 22.07.2010, 14:14

Edit: Wofür sollte man unsichtbare Texte in den Chat senden?! Das klingt mir sehr nach einem Timeoutkiller-Script.

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Problem mit sendeText: <script>

Ungelesener Beitrag von Maxs » 22.07.2010, 14:22

Hmm ja, genau so mach ich das auch gerade. Nur es stört mich ein bisschen das für einen kurzen Augenblick die Chatzeile erscheint und dann versteckt wird. Naja, dann muss ich halt damit leben ;)
Ich hätte gedacht, dass das irgendwie geht, wenn ich mir eine eigene sendeText() zusammenbaue, dass ich die Funktion hideMsg() in der sendeText() Funktion einbauen kann.
Also dass ich dann eine sendeHideText(text, user); habe, die immer die Chatnachrichten versteckt, wenn man diese benutzt. Nur ist mir die sendeText()-Funktion noch ein bisschen zu kompliziert und ich habe zu wenig Überblick. Sonst hätte ich diese Funktion sofort mal ausprobiert.

Edit: Nein, kein TimeOut()-Killer. Ich programmier selber für mich gerade an MaiZ weiter, und mache gerade die sayHello() Funktion. Da MaiZ den Chatstream kontrolliert, mache ich das mit

Code: Alles auswählen

sendeText("!say "+Hellotext[random].replace(/&user&/, myNick));
Also der Neuhinzugekommene sendet einen zufälligen Hellotext in den Chat. Die Funktion !say versteckt bei mir schon alle Texte, aber man sieht trotzdem immer ganz kurz den Absender.

Edit2: Bevor du frägst, ich weiß das MaiZ eine echo() Funktion hat, doch ist da das Problem, dass ich eine zufällige Begrüßung will. Da die Random()-Funktion auch versagt, da der Neu eingeloggte User keine lineData zur Verfügung hat, fällt die auch flach. Also muss bei mir der User, der noch keine lineData hat, den Text in den Chat senden. Und da ich dann auch den Math.random() benutzen kann, ist das noch besser, da der Zufall der beste ist. Aber notfalls wenn das nicht geht, dann muss ich halt mit dem kurzen erscheinen des texts leben.

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

Re: Problem mit sendeText: <script>

Ungelesener Beitrag von 1. FC Keller » 22.07.2010, 15:01

Hm... mit der Echo-Funktion sollte es doch so klappen:

Code: Alles auswählen

<script type='text/javascript'>rand=parseInt(Math.random*Hellotext.length);Maiz.echo(Hellotext[rand].replace(/&user&/, myNick));</script>
... nur bekommt es dann halt nur der User angezeigt der den Chat betritt... ok... dann wirds wirklich kompliziert ^^ da fällt mir auch nix anderes ein... entweder chatbefehl oder das kurze aufblinken akzeptieren.

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Problem mit sendeText: <script>

Ungelesener Beitrag von Maxs » 22.07.2010, 15:04

Ja genau so weit war ich auch mal ;) Aber es sollen ja alle den gleichen Text angezeigt bekommen. Deswegen fiel mir nur noch sendeText() ein. Schade, aber danke für die Hilfe. Ist halt ein klitzekleiner Schönheitsmangel, aber was solls.

DarkModi
Beiträge: 45
Registriert: 08.05.2005, 18:44

Re: Problem mit sendeText: <script>

Ungelesener Beitrag von DarkModi » 25.07.2010, 22:49

Pseudorandom könntest du auch mit der Onlineliste probieren, die ist ja spätestens nach dem Login des Users auch bei jedem gleich. Farbcode/Nicklänge des Users sind auch noch möglich, sogar an die Loginmessage kommst du noch über einen AJAX-Request des Menüs ran. So kannst du das mit der Nachricht vllt. noch vermeiden. Ansonsten kannst du ja mal gucken wie MaiZ sich bei sehr hohen Intervallen verhält oder den ganzen Chatstream mit einem Div überdecken und dort erst Nachrichten nach dem Empfang anzeigen lassen, sollte auch bei der Problemlösung helfen.

Nur als Tipp am Rande, der Mist hat mir damals auch Kopfzerbrechen bereitet. :D

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Problem mit sendeText: <script>

Ungelesener Beitrag von Maxs » 01.08.2010, 22:49

Vielen Dank DarkModi,
ich habe nun etwas rumprobiert und bin zu den Entschluss gekommen, dass ich das Interval etwas verändere (hab's jetzt mal auf 100 gesetzt). Das mit den Ajaxrequests war auch eine gute Idee, aber mir fehlt eindeutig die Loginuhrzeit. Bei wenig Usern bleibt die Nachricht bei jedem immer ähnlich, auch bei vielen Usern. Den Chat mit einer Div zu überziehen - Ich weiß nicht so genau, wie ich das gescheid hinbringen soll, da passieren bei mir noch öfters Fehler. Aber ich werde es im hinterkopf behalten.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 54 Gäste