php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 06-05-2008, 16:11
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

Lustig, dass dieses Thema nach so langer Zeit wieder aufkommt

Erstens einmal ist Javascript case sensitive, du musst also "Event" schreiben und nicht "EVENT".
Zweitens ist mir gerade aufgefallen, dass dieses Script bei alten Browsern nicht korrekt laufen würde... da ist mir ein Fehler unterlaufen!
Code:
document.getElementById("nachricht").onkeydown = function(e){
 e = e || window.event;
 var key = e.keyCode || e.which || e.charCode, shift = e.modifiers & Event.SHIFT_MASK || e.shiftKey; // <-- so
 // sollte es korrekt sein, z.B. für Netscape. Die meisten Browser unterstützen aber so oder so shiftKey
 if(key == 13 && !shift){
  send();
  return false;
 }
}
Muss afaik auch e.SHIFT_MASK heißen. <-- das stimmt afaik nicht... SHIFT_MASK ist ne Konstante!


Dieses Script gehört eigentlich nicht in den Header ausser es ist wird mit einem Delay ausgeführt:
Code:
_shift = function(e){
 e = e || window.event;
 var key = e.keyCode || e.which || e.charCode, shift = e.modifiers & Event.SHIFT_MASK || e.shiftKey;
 if(key == 13 && !shift){
  send();
  return false;
 }
}
setTimeout("document.getElementById('nachricht').onkeydown = _shift;", 50);
Mit Zitat antworten
  #17 (permalink)  
Alt 06-05-2008, 16:12
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Ok verstehe...

hab es jetzt so:

Code:
<script type="text/javascript">
	document.getElementById("nachricht").onkeydown = function(e){
	 e = e || window.event;
	 var key = e.keyCode || e.which || e.charCode, Shift = e.SHIFT_MASK || e.shiftKey;
	 if(key == 13 && !Shift){
	  send();
	  return false;
	 }
	}
</script>

Code:
<textarea id="nachricht" name="nachricht" style="height:70px; width:375px;" ></textarea>
jetzt schreibet er hier:
if(key == 13 && !Shift){
das bei Zeichen 4 ein Obekt erwartet wird... das passiert aber nur wenn ich ENTER drücken... wenn ich SHIFT + ENTER drücke macht er einen Zeilenumbruch... so wie es sein soll. Nur leider sendet das Formular noch nicht... sonden was wird wie gesagt noch eine Objekt erwartet.

Gruß Nordin

//EDIT
oh erstmal den Beitrag über mir hier lesen... haben sich geschnitten...
Mit Zitat antworten
  #18 (permalink)  
Alt 06-05-2008, 16:17
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

wahrscheinlich hast du keine Funktion, die "send" heisst...
Das ist nur eine Beispielsfunktion... Die Funktion send steht hier als Platzhalter für zum Beispiel document.form.submit() (submit()) oder für document.getElementById("submit_button").click(), etc. (submit() ist hilfreicher, da du sonst auch noch mit attachevent etc. arbeiten musst). Du kannst auch direkt eine AJAX Funktion einbinden, was bei etwas Chat- ähnlichem wohl am sinnvolsten und wahrscheinlichsten ist.
Mit Zitat antworten
  #19 (permalink)  
Alt 06-05-2008, 16:29
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Ok vergessen wir mal meinen Beitrag hier drüber und machen hier weiter mit dem was du grad geschrieben hast.

So langsam versteh ich es immer besser... aber wenn ich es so mache wie du gesagt hast bekomme ich den Fehler "Event inst undefiniert".

Wenn du mir jetzt noch genau so super erklären kannst was das bedeutet dann bin ich fast am ziel und in sachen js schlauer gewurden.

Danke für deine lehrreiche Hilfe!!

//Edit wieder haben sich die beitrgäge geschnitten *g*
Mit Zitat antworten
  #20 (permalink)  
Alt 06-05-2008, 16:33
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

kannst du mir bitte mal deinen Beispielcode geben und den Browser wos nicht funktioniert?
Mit Zitat antworten
  #21 (permalink)  
Alt 06-05-2008, 16:37
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
wahrscheinlich hast du keine Funktion, die "send" heisst...
lool das wars...

DANKE !!!

Ich hab es jetzt so:

Code:
<form name="chatfenster" action="link.php" method="post">

  <textarea id="nachricht" name="nachricht"></textarea>

  <script type="text/javascript">
    document.getElementById("nachricht").onkeydown = function(e){
      e = e || window.event;
      var key = e.keyCode || e.which || e.charCode, Shift = e.SHIFT_MASK || e.shiftKey;
      if(key == 13 && !Shift){
        document.chatfenster.submit();
        return false;
      }
    }
  </script>

  <input type="submit" name="send_newmess" value="Senden" />

</form>
Mal wieder super Hilfe hier bekommen so wie man gewöhnt ist
Mit Zitat antworten
  #22 (permalink)  
Alt 06-05-2008, 16:43
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

Sry, aber das ist leider immer noch falsch beim Netscape funktioniert das nicht immer...
Jetzt einmal ein Beispiel, welches im Netscape, Mozilla, Firefox, IE und Opera funktioniert (HTML ist nicht valide, aber das brauchst du ja auch nicht)
Code:
<html><head><script>send = function(){document.getElementById('nachricht').value = "";};_shift = function(e){
 e = e || window.event;
 var key = e.keyCode || e.which || e.charCode, shift = e.modifiers ? e.modifiers & Event.SHIFT_MASK : e.shiftKey;
 if(key == 13 && !shift){
  send();
  return false;
 }
}
setTimeout("document.getElementById('nachricht').onkeydown = _shift;", 50);</script></head><body><textarea id="nachricht"></textarea></body></html>
Fehlender Event kam wohl im IE zum Vorschein... hab ehrlich gesagt nicht daran gedacht, dass es dort die Konstante nicht gibt, da es das Element Event als solches auch nicht gibt
Mit Zitat antworten
  #23 (permalink)  
Alt 06-05-2008, 23:56
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Also wenn ich es jetzt mache wie du geschrieben hast funktioniert es tatsächlich im FF aber leider nicht mehr im IE

Es kommt kein Fehler... er sendet nur nicht...

Aber falls es hilft, mir ist durch zufall aufgefallen das es mit meinem letzem beispiel im IE sendet... aber im FF leider nicht... ich hatte ausversehen aus "Event.SHIFT_MASK" ein "Event.SSHIFT_MASK" gemacht und so ging es im FF... aber dafür nicht mehr im IE *g* vielleicht hilft es dir ja irgendwie...

Geändert von Nordin (06-05-2008 um 23:59 Uhr)
Mit Zitat antworten
  #24 (permalink)  
Alt 07-05-2008, 12:27
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

Welche Version hast du? Wenn du eine Datei mit dem Inhalt benutzt, den ich in meinen letzten Post geschrieben habe geht es zumindest im IE 7 problemlos.
Sobald Enter gedrückt wird wird es gesendet, wenn shift+enter aber erscheint ein absatz. du kannst auch Text reinschreiben und der wird bei einem alleinigen drücken von Enter gelöscht. Das Löschen nimmt die Funktion send vor in diesem Fall.
Mit Zitat antworten
  #25 (permalink)  
Alt 07-05-2008, 12:49
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Hab den IE7...


Ich habe es so im <head>

Code:
<script type="text/javascript">
send = function(){document.getElementById(\'nachricht\').value = "";};_shift = function(e){
 e = e || window.event;
 var key = e.keyCode || e.which || e.charCode, shift = e.modifiers ? e.modifiers & Event.SHIFT_MASK : e.shiftKey;
 if(key == 13 && !shift){
  document.chatfenster.submit();
  return false;
 }
}
setTimeout("document.getElementById(\'nachricht\').onkeydown = _shift;", 50);
</script>
und die textarea so im body:
Code:
<textarea id="nachricht" name="nachricht" style="height:70px; width:360px;" ></textarea>
Im FF funktioniert es wie es soll und im IE macht er den Zeilenumbruch mit Shift+Enter auch super aber wenn ich nur Enter drücke macht er ebenfals einen Zeilenumbruch.
Mit Zitat antworten
  #26 (permalink)  
Alt 07-05-2008, 13:34
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

übernimm einmal genau meine neuste Version...
Du hast da noch einen Teil von der ersten Version.
Bei Enter löst es bei dir send() gar nicht aus, denn du hast das mit document.chatfenster.submit(); ersetzt. document.chatfenster kann aber nicht gefunden werden... deswegen bricht das Script ab und es wird auch kein false zurückgegeben. Weil false nicht zurückgegeben wird, wird die Tastatureingabe ganz normal verarbeitet.

Nochmals den selben Code wie oben schon... So funktioniert es:
Code:
<html>
<head>
<script type="text/javascript">
send = function(){document.getElementById('nachricht').value = "";};_shift = function(e){
 e = e || window.event;
 var key = e.keyCode || e.which || e.charCode, shift = e.modifiers ? e.modifiers & Event.SHIFT_MASK : e.shiftKey;
 if(key == 13 && !shift){
  send();
  return false;
 }
}
setTimeout("document.getElementById('nachricht').onkeydown = _shift;", 50);
</script>
</head>
<body>
<textarea id="nachricht" name="nachricht" style="height:70px; width:360px;" ></textarea>
</body>
</html>
Mit Zitat antworten
  #27 (permalink)  
Alt 07-05-2008, 14:17
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
document.chatfenster kann aber nicht gefunden werden...
na doch weil ich mach doch nen formular mit den namen... alá

Code:
<form name="chatfenster" action="'link.php" method="POST">
<textarea></textarea>
<input type="submit" />
</form>
Mit Zitat antworten
  #28 (permalink)  
Alt 07-05-2008, 15:22
zerni
 Member
Links : Onlinestatus : zerni ist offline
Registriert seit: Oct 2006
Beiträge: 268
zerni ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wie wäre zur Initialisierung mit einem:
Code:
window.onload = function(){
doSomething();
}
vllt. interessiert dich ja auch das framework prototype.
Dort sind die Events ganz gut gestaltet, besonders mit Scopes.

http://www.prototypejs.org/api/event

das ginge dann z.b. so:

Code:
window.observe('load', function() {
  doSomething();
});
__________________
Killerspiele sollten in der Größenordnung von Kinderpornografie eingeordnet werden.(G. Beckstein)
- ...und solche Behauptungen in "falsches Resourcenmanagement"

Geändert von zerni (07-05-2008 um 16:22 Uhr)
Mit Zitat antworten
  #29 (permalink)  
Alt 07-05-2008, 15:32
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

DANKE!

So funktioniert es scheinbat im IE UND FF

Code:
<form name="chatfenster" action="link.php" method="post">

  <textarea id="nachricht" name="nachricht"></textarea>

  <script type="text/javascript">
    document.onload = function(){document.getElementById('nachricht').value = "";};_shift = function(e){
      e = e || window.event;
      var key = e.keyCode || e.which || e.charCode, shift = e.modifiers ? e.modifiers & Event.SHIFT_MASK : e.shiftKey;
      if(key == 13 && !shift){
        document.chatfenster.submit();
        return false;
      }
    }
    setTimeout("document.getElementById('nachricht').onkeydown = _shift;", 50);
  </script>


  <input type="submit" name="send_newmess" value="Senden" />

</form>

Geändert von Nordin (07-05-2008 um 15:34 Uhr)
Mit Zitat antworten
  #30 (permalink)  
Alt 07-05-2008, 21:10
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

Code:
<form name="chatfenster" action="link.php" method="post">

  <textarea id="nachricht" name="nachricht"></textarea>

  <script type="text/javascript">
    document.onload = function(){document.getElementById('nachricht').value = "";}; // das brauchst du nicht! das War nur für das Beispiel
// onload würdest du nur im Head benutzen, nicht im Body
_shift = function(e){
      e = e || window.event;
      var key = e.keyCode || e.which || e.charCode, shift = e.modifiers ? e.modifiers & Event.SHIFT_MASK : e.shiftKey;
      if(key == 13 && !shift){
        document.chatfenster.submit();
        return false;
      }
    }
    setTimeout("document.getElementById('nachricht').onkeydown = _shift;", 50);// da du das Javascript im Body eingefügt hast brauchst du das auch nicht
  </script>


  <input type="submit" name="send_newmess" value="Senden" />

</form>
besser
Code:
<form name="chatfenster" action="link.php" method="post">
  <textarea id="nachricht" name="nachricht"></textarea>
  <script type="text/javascript">
document.getElementById('nachricht').onkeydown = function(e){
      e = e || window.event;
      var key = e.keyCode || e.which || e.charCode, shift = e.modifiers ? e.modifiers & Event.SHIFT_MASK : e.shiftKey;
      if(key == 13 && !shift){
        document.chatfenster.submit();
        return false;
      }
    }
  </script>


  <input type="submit" name="send_newmess" value="Senden" />

</form>
Wenn du mit onload arbeiten willst machst du es am besten gleich mit dem gewünschten Element. Also mit document.getElementById('nachricht')
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:45 Uhr.