mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 08:43 Benutzername: Passwort: Auto-Login

Thema: JAVASCRIPT Funktioniert nicht wie im Internet Explorer vom 14.11.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> JAVASCRIPT Funktioniert nicht wie im Internet Explorer
Autor Nachricht
Taker
Threadersteller

Dabei seit: 14.11.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 14.11.2007 13:32
Titel

JAVASCRIPT Funktioniert nicht wie im Internet Explorer

Antworten mit Zitat Zum Seitenanfang

Servus Leute,

der unten stehende Script funktioniert im Firefox nicht so wie im IE. Es soll bewirken, das ich die Breite der Spalten mit der Maus ändern kann, sowie wie im Windows Explorer wenn ich unter Ansicht Details die Spaltenbreite verändern will. Wie funktioniert das jetzt aber im Firefox?

Könnt ihr mir weiter helfen?

Code:
<html>
 <head>
  <title>Resize Columns</title>
   <style type="text/css">
    <!--
    .resizer {
     cursor: e-resize;
    }
    .tableData {
     padding: 3px;
     white-space: nowrap;
     overflow: hidden;
    }

-->
</style>
<script>

var dragStartPos = 0;
var resizing = false;


function startDrag(i){
test=i;
 document.onmousemove = dragging;
 resizing = true;
 if (navigator.appName == 'Netscape') {
  theEvent = e;
 } else {
  theEvent = event;
 }
 dragStartPos = theEvent.clientX;
 return true;
}

function stop(){
 resizing = false;
}


function dragging(e)
{
  // hole event-objekt falls e nicht übergeben wurde (da wir es dann mit einem IE zu tun haben...)
if(!e){
  var theEvent = window.event;
}
else{
var theEvent = e;
}
  // das würde ich eher in den mousedown-handler packen
  document.onmouseup = stop;

  // globale variablen sind sehr unschön - wenn nicht gedraggt werden soll, sollte dieser event-handler besser gar nicht aktiv sein...
  if( resizing )
  {
    dragEndPos = theEvent.clientX;
    // parseInt!? suchst du bei der ersten Anwendung vielleicht nach Math.floor() oder .ceil() oder .round()?
    newWidth = parseInt(dragEndPos - dragStartPos) + parseInt(document.getElementById(test).width);
    if(newWidth >= 1){
      document.getElementById(test).width = newWidth;
      dragStartPos = dragEndPos
    }
}
return true;
  }




</script>
</head>

<body onselectstart='return false'>
<table style="table-layout: fixed;" border="0" cellpadding="0" cellspacing="0" bgcolor="#DDDDDD">
<tr>
<td width="4" bgcolor="#DDDDDD"></td>
<td id="spalte1" width="100" bgcolor="#DDDDDD" class="tableHeader">Author</td>
<td width="4" bgcolor="#DDDDDD" class="resizer" onMouseDown="startDrag('spalte1')"></td>

<td id="spalte2" width="100" class="tableHeader">Title</td>
<td width="4" bgcolor="#DDDDDD" class="resizer" onMouseDown="startDrag('spalte2')"></td>
<td id="spalte3" width="100" class="tableHeader">Date</td>
<td width="4" bgcolor="#DDDDDD" class="resizer" onMouseDown="startDrag('spalte3')"></td>
</tr>
<tr>
<td></td>
<td bgcolor="#FFFFFF" class="cell">
<div class="tableData">Test</div>
</td>
<td></td>
<td bgcolor="#FFFFFF" class="cell">
<div class="tableData">Test</div>

</td>
<td></td>
<td bgcolor="#FFFFFF" class="cell">
<div class="tableData">Test. Test. Test. Test. Test. Test. Test. Test. Test. Test. Test. Test. Test. </div>
</td>
<td></td>
</tr>
</table>
</body>
</html>
  View user's profile Private Nachricht senden
Zeithase

Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht: Männlich
Verfasst Do 15.11.2007 04:22
Titel

Antworten mit Zitat Zum Seitenanfang

Recht logisch:

Code:
document.onmousemove = dragging;


Die Funktion dragging erwartet jedoch den Parameter e, den Du nicht uebergibst. Folglich ist theEvent im nicht-IE-Fall leer. Auch in der anderen Funktion verwendest Du undefinierte Parameter. Die Fehlerkonsole vom Firefox wird Dir in diesem Fall auch entsprechende Hinweise geben. Im Allgemeinen ist da ziemlich viel Schrott in Deinem "Skript" dabei. Lächel Drag&Drop- und Resizing Spielerein gibt's mittlerweile fertig zur Genuege (Script.aculo.us, JQuery, Mootools) -- einfach mal bisschen bei ajaxian.com stoebern.


Zuletzt bearbeitet von Zeithase am Do 15.11.2007 04:24, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
 
Ähnliche Themen Formmailer funktioniert mit Internet Explorer nicht.
Joomla funktioniert nicht mit Internet Explorer
JavaScript Fenster, falls Internet Explorer 6
Javascript - Internet Explorer grundsätzliche Fehlermeldung?
CSS im Internet Explorer
Problem mit Internet Explorer
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.