Autor Thema: (Diskussion) Miniaturansichten von Bildlinks im Chatlog  (Gelesen 102663 mal)

charly89

  • Besucher
  • *
  • Beiträge: 18
    • Profil anzeigen
(Diskussion) Miniaturansichten von Bildlinks im Chatlog
« am: 25. Dezember 2007, 22:16:03 »
nabend allerseits!
als ich gesehen habe dass man mit ieview javascript benutzen kann und so tzers oder flashavatare darstellen kann, habe ich die idee bekommen, andere dinge in den chatlog zu integrieren. als erstes dachte ich da an miniaturansichten von bildern die man als links bekommen hat, und das funktioniert jetzt auch.
warum ich dann hier schreibe? bin nicht grade die größte leuchte in javascript, bin da eher auf beginnerstand. ich suche hilfe das script zu verbessern.

ich benutze die BecHa-theme für ieview (http://addons.miranda-im.org/details.php?action=viewfile&id=2780) fast im originalzustand, aber nichts relevantes an änderungen.

die anleitung zu den tzers/avataren gabs hier:
http://miranda-im.de/mediawiki/index.php?title=ICQ_tZers_mit_Miranda_anzeigen_%28Komplexe_Variante%29

ich beschreibe einfach mal was ich bereits alles gemacht habe:

ich habe die .js datei so eingebunden:
Zitat
<head>
<base href="%base%">
<script src="ausgabe.js"></script>
<meta http-equiv="Content-Type" content="text/html;">
<link href="BecHa.css" rel="stylesheet" type="text/css">
</head>
<body id="body" class="body">

und die %text% variable wird ersetzt durch <script>TzersOutput('tzers','center','yes','get','%\text%','%\name%');</script>

genau wie in der anleitung.

jetzt kommt meine änderung
datei: ausgabe.js

das "ursprungs-if", also das "ober-if" hat in der else am ende eine reine ausgabe des eingangstextes (ergo nachdem festgestellt wurde dass kein tzer geschickt wurde gibts den normalen text)

//Hier wird ein DIV-Tag namens "tZersDiv" mit eingebetteten Object-Child erzeugt, das durch die Funktion "neubestimmen()"
//immer im Sichtbereich, auch beim Scrollen, gehalten und mit der Funktion "ausblenden()" nach einigen Sekunden versteckt wird
<!--
document.write('<div id="tZersDiv" align=\"right\" style=\"position:absolute; top:0; overflow:hidden; visibility:hide; z-index:200;\">');
document.write('<input type=checkbox name="closetzer">');
document.write('</div>');
setInterval("neubestimmen()", 10);
document.getElementById("tZersDiv").style.visibility = "hidden";


//Der DIV-Tag wird nach einigen Sekunden ausgeblendet
function ausblenden()
{
  document.getElementById("tZersDiv").style.visibility = "hidden";
}

//Der DIV-Tag wird beim Scrollen nach ein paar Millisekunden auf die neue Position innerhalb des Blickberechs gesetzt
function neubestimmen()
{
  //-------------------------------------------------------------------------------------
  // tZersHoehenAnpassung verhindert beim tZers-Empfang das vertikale Scrollen ins
  // Unendliche; muss ggf. mit einem größeren Wert angepasst werden.
  // tZersBreitenAnpassung paßt die Breite des Ausgabefensters an, dadurch kann das
  // vertikale Scrollen verhindert werden, muss ggf. mit einem größeren Wert angepasst
  // werden.
  //-------------------------------------------------------------------------------------
  tZersHoehenAnpassung  = 3;
  tZersBreitenAnpassung = 32;
 
  //Je nach <!DOCTYPE> in der .ivt-Datei wird eine andere IF-Anweisung durchgeführt. 
 
  var scrollPos;
  var bildbreite;
  var bildhoehe;
  if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
scrollPos = document.documentElement.scrollTop;
bildbreite = Math.max(230-tZersBreitenAnpassung,document.documentElement.offsetWidth - tZersBreitenAnpassung);
bildhoehe  = Math.max(210-tZersHoehenAnpassung,document.documentElement.offsetHeight - tZersHoehenAnpassung);
    if (document.documentElement.closetzer.checked == true) {
  document.getElementById("tZersDiv").innerHTML = '<input type=checkbox name="closetzer">';
  document.getElementById("tZersDiv").style.visibility = "hidden";
}
  }
  else
if (typeof document.body != 'undefined') {
  scrollPos = document.body.scrollTop;
  bildbreite = document.all.body.offsetWidth - tZersBreitenAnpassung;
  bildhoehe  = document.all.body.offsetHeight - tZersHoehenAnpassung;
      if (document.all.closetzer.checked == true) {
    document.getElementById("tZersDiv").innerHTML = '<input type=checkbox name="closetzer">';
document.getElementById("tZersDiv").style.visibility = "hidden";
  }
    }
  document.getElementById("tZersDiv").style.Width = bildbreite;
  document.getElementById("tZersDiv").style.top = scrollPos;
  document.getElementById("tZersDiv").style.left = 0;
  document.getElementById("tZersDiv").style.height = bildhoehe;
}


// Hier wird die Ausgabe vorbereitet und je nach Wert angezeigt
function TzersOutput (tzersoderbild,ausrichtung,zeigetzersname,bekommensenden,eingangsmeldung,sendername) {
  link = eingangsmeldung;
  link = link.split("swf");
  if (link[1] && (link[0].substr(0,4)=="tZer" || link[0].substr(54,5)=="xtraz" || link[0].substr(55,5)=="xtraz")) {
    link = link[1].split("http://");
   
    //-------------------------------------------------------------------------------------
    // Hier muss der Pfad zu den tZers (.swf- und .png-Dateien) angepaßt werden, damit
    // diese gefunden werden. Standardmäßig ist hier das "tZersFiles"-Verzeichnis gewählt,
    // das, von der .ivt-Datei aus gesehen, eine Ebene höher liegt.
    //-------------------------------------------------------------------------------------
    swfname = link[1].substring(link[1].lastIndexOf('/')+1,link[1].length-1);
    bildlink= '../tZersFiles/'+swfname+'.png';
    swflink = '../tZersFiles/'+swfname+'.swf';

    //-------------------------------------------------------------------------------------
    // Die folgende IF-Anweisung erzeugt und gibt den tZers-Namen aus,
    // wenn ein tZer empfangen wird. Kann auch weggelassen oder
    // durch einen anderen document.write-Befehl ersetzt werden.
    // Der erzeugte Name wird nicht in der History gespeichert.
    // Es wird lediglich der unveränderte Ausdruck gespeichert.
    //-------------------------------------------------------------------------------------
    if (zeigetzersname == 'yes') {
      tzersname = eingangsmeldung;
  if ((eingangsmeldung.substr(54,5)=='xtraz') || (eingangsmeldung.substr(55,5)=='xtraz')) {
        tzersname =  tzersname.split('.');
        tzersname =  tzersname[2].substring(tzersname[2].lastIndexOf('/')+1,tzersname[2].length)+'<br>';
      }
      else {
        tzersname = tzersname.split("tZer received:");
tzersname = tzersname[1].split('"');
        tzersname = tzersname[0].split('http://');
        tzersname = tzersname[0].substring(1,tzersname[0].length-6);
      }
      if (bekommensenden == 'get') {
        document.write(sendername+' tZers you with <a href=http://'+link[1]+'swf>'+tzersname+'</a>');
      } 
      else {
        document.write('You tZer with <a href=http://'+link[1]+'swf>'+tzersname+'</a>');
      }
    }

    //-------------------------------------------------------------------------------------
    // Wenn man die Animation mit einen Rechtsklick wiederholen möchte, einfach in der
    // folgenden IF-Anweisung den gekennzeichneten Code-Teil weg lassen; dadurch ist es
    // aber nicht möglich, dass die Animation transparent angezeigt wird, also ist sie
    // ENTWEDER transparent ODER rückspulbar.
    //-------------------------------------------------------------------------------------
    switch (tzersoderbild) {
      case "tzers":
        document.write('<i>(press ALT-B to show the tZer again)</i>');
        document.getElementById("tZersDiv").innerHTML =
   '<input type=radio name="closetzer">'
          +'<object id="tZersObject" classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" Width=100% height=100% border=0 codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0">'
          +'<param name="movie" value="'+swflink+'">'
          +'<PARAM NAME=wmode VALUE=transparent>' // -- diesen Teil ggf. weglassen --
          +'</object>';
        document.getElementById("tZersDiv").style.visibility = "visible";
window.setTimeout("ausblenden();",15000);
        break;
      case "picture":
        document.write('<div align="'+ausrichtung+'">');
        document.write('<a href=http://'+link[1]+'swf><img src="'+bildlink+'" alt="'+swfname+'-Bild"></a>');
        document.write('</div>');
        break;
      default:
        break;
    }
 }
[B][color=red][/color]
  else {
    document.write(eingangsmeldung);
  }[/color][/B]
}

der rote teil ist der interessante, wie gesagt. die idee war folgendermaßen:
der text von eingangsmeldung wird abgeparsed nach http-links die mit .jpg enden. dieser link soll ersetzt werden mit einer miniaturansicht des bildes, wo man durch einen klick drauf auf die original-url kommt.
zuerst musste ich wissen, wie der link an die "TzersOutput"-funktion übergeben wird (weil ich den text ja in der replace() funktion suchen muss und durch den <img...> code ersetzen. habe also einen link versendet und mir den quelltext vom ieview fenster anzeigen lassen:

<a class=\"link\" target=\"_self\" href=\"URL">URL[/url]

jetzt wusste ich alles was nötig war und habe den roten bereich ersetzt durch folgenden:

   
Zitat
else {
   if(eingangsmeldung.search("http://") != -1 && eingangsmeldung.search(".jpg") != -1)
      {
            httpsplit = eingangsmeldung.split("http://"); //http ausfindig machen und splitten
            link = httpsplit[1].split(" "); //nach dem link ist eine leerstelle. link[0] ist also meine bild-url
            image = 'http://' +link[0]; //wegen der split() funktion wird das "http://" gelöscht und hier wirds wieder drangefügt
            image = image.substr(0,image.length-2); //das "> am ende des strings wird entfernt weil der link als html ankommt: <a href="...">
            img_msg = '<a class=\"link\" target=\"_self\" href=\"' +image +'\">' +image +'[/url]'; //so sieht mein link im theme aus, statt der url habe ich die image variable eingesetzt
            img_rplc = '
<a class=\"link\" target=\"_self\" href=\"' +image +'\"><img src="' +image +'" style="border: 1px solid #95cc00;width: 200px;height: auto;">[/url]
<a class=\"link\" target=\"_self\" href=\"' +image +'\">' +image +'[/url]
';
            document.write(eingangsmeldung.replace(img_msg, img_rplc));
      } else {
         document.write(eingangsmeldung);
      }
   }

wenn man also einen link mit jpg endung bekommt sieht der log bislang so aus:





funktioniert wunderbar. ich denke aber das könnte etwas einfacher gehen. zum beispiel finde ich die geschachtelten if-abfragen etwas zu aufwendig. wenn man diese in eine schreibt dann kriegt man nicht 100%ig die korrekte wirkung (wenn http:// und .jpg vorkommen, wenn http:// und .png vorkommen STATT wenn http:// und .jpg oder .png vorkommen, da das oder nicht an das http gekoppelt ist).
gibt es keine andere möglichkeit? z.b.

eingangsmeldung.search("http://") != -1 && eingangsmeldung.search(ENDUNGSARRAY) != -1

also statt geschachtelten abfragen nur eine, in der für die endung ein array aus verschiedenen steht (jpg,jpeg,png,bmp,gif...)
ich hoffe mal ich habe alles ausführlich genug dargestellt und mir kann hier jemand zur hand gehen :/

liebe grüße
charly

/EDIT:
mir ist grade aufgefallen, dass man hier nur einen bildlink verarbeiten kann, denke aber erstmal sollte man die abfrage nach bildendungen in die reihe kriegen
« Letzte Änderung: 20. Dezember 2008, 13:10:49 von lastwebpage »

progandy

  • Plugin-Autor
  • Akkordschreiber
  • ***
  • Beiträge: 626
    • progandy@hot-chilli.net"
    • http://progandy.miranda-vi.org"
    • Profil anzeigen
    • ProgAndy
So?
if(eingangsmeldung.search("http://") != -1 && (eingangsmeldung.search(".jpg") != -1 || eingangsmeldung.search(".bmp") != -1|| eingangsmeldung.search(".png") != -1) )und so weiter...
Jetzt wo ich weiss wie es funktioniert versteh ich auch die Gebrauchsanleitung
[Status: Jabber]

charly89

  • Besucher
  • *
  • Beiträge: 18
    • Profil anzeigen
habe ich schon ausprobiert, das || scheint das && aufzuheben
if(
eingangsmeldung.search("http://") != -1 && (eingangsmeldung.search(".jpg") != -1
|| eingangsmeldung.search(".bmp") != -1
|| eingangsmeldung.search(".png") != -1
)

würde heißen er vergleicht ob http:// UND .jpg vorkommen, aber es reicht auch wenn .bmp ODER .png vorkommen.

das ist ja das problem :/ eine arraylösung bzw eine antwort darauf ob so verglichen werden kann wäre meines erachtens das beste
« Letzte Änderung: 26. Dezember 2007, 00:56:05 von charly89 »

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
kannst ja wie folgt probieren:


endungen[.jpg,.bmp,.png]                      //Array mit allen Endungen
eingangsmeldungendung == ''
index=0
for index++
   if eingangsmeldung.search(endungen[index]) != -1 then {
      eingangsmeldungendung == endungen[index];
   }
endfor
if (eingangsmeldung.search("http://") != -1 && eingangsmeldungendung != '' ) {
      //Variable eingangsmeldungendung kann hier wieder
      //zum zusammensetzen des Links gebraucht werden
}
else {}

Schreib mal Deine Lösung in eine Funktion z.B.:BILDERANZEIGER, die ich dann die
Variable eingangsmeldung als Parameter übergebe. Im Beispiel halt: BILDERANZEIGER(eingangsmeldung);
Du kannst somit auch eigenen Variablenbezeichnungen wählen.

PS: Kein richtiger Code, nur mal so als Anregung.

Mfg Nem


Edit: Schöne wäre es, wenn auch Bildchen zwischen Texte ersetzt wird.
       "TEXTTEXTTEXTBILDLINKTEXTTEXT"
« Letzte Änderung: 26. Dezember 2007, 11:46:58 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



charly89

  • Besucher
  • *
  • Beiträge: 18
    • Profil anzeigen
bisher siehts so aus (letzte klammer von ausgabe.js)

  } else {
document.write(thumbcreate(eingangsmeldung));
  }

und die funktion so (habe den bilddarstellungsteil auskommentiert, da der unwichtig ist erstmal)

function thumbcreate(text)
{
endungen = new Array(".jpg",".bmp",".png",".gif",".jpeg"); //endungen von bildern
found = new Array();

match = text.match(/http/gi);
for(i=0; i<=match.length; i++) { //so oft schleife durchlaufen wie es arrayelemente-1 gibt, also anzahl links
if (text.search(endungen[i]) != -1) { //jede endung suchen
found.push(endungen[i]);
//found.[found.length] = endungen[i]; //produziert "bezeichner erwartet" error
}
}
document.write('linkanzahl= ' +found.length +'<br>');
//gefundene ausgeben
document.write('gefundene endungen: <br>');
for(test=0;test<found.length;test++) {
document.write('['+test+'] => '+found[test]+'<br>');
}

return text;
/*if(text.search("http://") != -1 && text.search(".jpg") != -1) {
httpsplit = text.split("http://"); //anzahl http ausfindig machen und splitten
link = httpsplit[1].split(" "); //nach dem link ist eine leerstelle. link[0] ist also meine bild-url
image = 'http://' +link[0]; //wegen der split() funktion wird das "http://" gelöscht und hier wirds wieder drangefügt
image = image.substr(0,image.length-2); //das "> am ende des strings wird entfernt weil der link als html ankommt: <a href="...">
img_msg = '<a class=\"link\" target=\"_self\" href=\"' +image +'\">' +image +'</a>'; //so sieht mein link im theme aus, statt der url habe ich die image variable eingesetzt
img_rplc = '<br><a class=\"link\" target=\"_self\" href=\"' +image +'\"><img src="' +image +'" style="border: 1px solid #95cc00;width: 200px;height: auto;"></a><br><a class=\"link\" target=\"_self\" href=\"' +image +'\">' +image +'</a><br>';
text = text.replace(img_msg, img_rplc);
return text;
} else {
return text;
}*/
}

es soll so funzen, dass der erst per match() guckt nach "http://", dann soll die anzahl per length rausgefunden werden. die for schleife zur erkennung der endung soll genau so oft ausgeführt werden wie es http-links gibt. wenn er dabei eine endung im array findet, soll er diese ins array "found" als jeweils letzte position (push()) einfügen. kurios ist das was dabei rauskommt als ausgabe im chatlog:

GESCHRIEBENER TEXT:
hier kommt text http://.jpg noch ein text http://.gif texttext http://.png TESTTEXThier kommt text http://.jpg noch ein text http://.gif texttext http://.png TESTTEXT

DARGESTELLTER TEXT:
linkanzahl= 11
gefundene endungen:
  • => .jpg
  • [1] => .png
    [2] => .gif
    [3] => undefined
    [4] => undefined
    [5] => undefined
    [6] => undefined
    [7] => undefined
    [8] => undefined
    [9] => undefined
    [10] => undefined
    hier kommt text http://.jpg noch ein text http://.gif texttext http://.png TESTTEXThier kommt text http://.jpg noch ein text http://.gif texttext http://.png TESTTEXT

wie es aussehen sollte:
linkanzahl = 6
gefundene endungen:
  • => .jpg
  • [1] => .gif (oben png)
    [2] => .png (oben wars gif)
    [3] => .jpg
    [4] => .gif
    [5] => .png

    ich weiß nicht wie es dazu kommt und was falsch sein kann am code

    hilfe!

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Hi. Habe mir den Quellcode zwar noch nicht ganz angeschaut, aber mit for(i=0; i<=match.length; i++) müßte doch dann die Schleife 1mal zu oft durchlaufen werden.
Ich kenne das so, dass man den Index entweder von (i=0) bis (i<x) oder von (i=1) bis (i<=x) durchlaufen läßt.

Noch eine Sache:
Wenn ein Link ankommt, wird in der Message immer 2mal HTTP enthalten sein. Da gilt:
http://.....

mfg Nem

« Letzte Änderung: 27. Dezember 2007, 00:15:21 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



charly89

  • Besucher
  • *
  • Beiträge: 18
    • Profil anzeigen
hmmm... wenn das doppelt gefunden wird bedeutet das bei 6 links sinds 12 matches. wenn man die durch 2 teilt kommt man auf 6. er gibt aber 11 aus, d.h. man muss die schleife 1x mehr durchlaufen.

erklärt aber immer noch nicht das komische verhalten mit den endungen im array 0.o kannst du dir das erklären?

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Suche doch nicht nach HTTP sondern nach href.
Du kannst es Dir einfacher machen und alle <a href=...> durch <img src="..."> ersetzen und die [/url] löschen.

---------------------------------

Deine Schleife hat einen logischen Fehler. Du vergleichst nur, ob eine Endung vorhanden ist oder nicht.
Es werden 12 http-Teile in der Message gefunden.
Die Schleife vergleicht nun die ersten 12 Elemente des endungen-Array, es gibt aber nur 5, die restlichen sind undefiniert.

endungen = new Array(".jpg",".bmp",".png",".gif",".jpeg");    //nachfolgende Positionen sind nicht definiert.

1er Durchlauf schaut nach JPG (1. Element vom endungen-Array), ist vorhanden in der Message also ins found reinschreiben
2er Durchlauf schaut nach BMP (2. Element vom endungen-Array), ist nicht vorhanden also nicht ins found reinschreiben
3er Durchlauf schaut nach PNG, ist vorhanden also ins found reinschreiben
4er Durchlauf schaut nach GIF, ist vorhanden also ins found reinschreiben
5er Durchlauf schaut nach JPEG, ist nicht vorhanden also nicht ins found reinschreiben
6er bis 12er Durchlauf schaut nach UNDEFINIERT, dennoch ins found reinschreiben

Somit ergibt sich jpg, png, gif, undefined, undefined, undefined, ........

EDIT:
Dein found hat nun 11 Elemente, da bei BMP und JPEG nicht das found vergrößert wurde und deine Schleife nicht 12 sondern 13mal, wegen (i=0) bis (i<=match.length),  durchlaufen wurde.
« Letzte Änderung: 27. Dezember 2007, 01:32:57 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Mal so auf die schnelle:

endungen = new Array(".jpg",".bmp",".png",".gif",".jpeg");
for(messagepos=0; messagepos<text.length; i++) {
  for(j=0; j<endungen.length; j++) {
     if ((text.substr(messagepos,4)==endungen[j]) || (text.substr(messagepos,5)==endungen[j])) then found.push(endungen[j]);
  }
}

Schaut an jedem Punkt der Message nach, ob eine vordefinierte Endung enthalten ist und schreibt die gefundene Endung in found rein.

Du kannst in found auch jeweils 2 Werte speichern. Position und Endung.

Nachteil: Bei einer Message müssen viele Vergleiche erfolgen, was das System evtl langsamer macht.

mfg Nem
« Letzte Änderung: 27. Dezember 2007, 00:45:31 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



charly89

  • Besucher
  • *
  • Beiträge: 18
    • Profil anzeigen
ich werd das morgen mal einbauen und sehen obs klappt! und wegen der verzögerung denk ich mal braucht man sich keine sorgen machen! normale icq messages sind ja nicht so lang, als dass man das merken würde.

vielen dank für die hilfe, war hier schon am verzweifeln! ich melde mich morgen wieder mit dem resultat!

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Ich würde es wohl so machen:

text.split('a href');
ausgabe = text[0]
for j++    //ab j=1  //nach und nach werden alle Teile aufgerufen und wieder zusammen gesetzte
 wenn text[j]!=-1 dann
    teiltext=text[j]
    teiltext.split[">"]
    wenn letzten 4 bzw. 5 Zeichen von teiltext[0] Element von endungen-Array dann ausgabe = ausgabe+'img src'+text;
    sonst  ausgabe = ausgabe+'a href'+text;
endfor
text=ausgabe;
text.split([/url]);
ausgabe = text[0]
for j++   //ab j=1  //nach und nach werden alle Teile aufgerufen und wieder zusammen gesetzte
 wenn text[j]!=-1 dann
    wenn es ein Bild ist (letzten Zeichen von ausgabe müssen einer Endung entsprechen) dann ausgabe = ausgabe+' '+text;
    sonst    ausgabe = ausgabe+'[/url]'+text;
endfor
text=ausgabe;

1. Überall wo "a href" ist wird auseinander geschnitten und danach wieder zusammen gefügt. Beim Zusammensetzen wird unterschieden zwischen Bild und kein Bild, bei Bild wird "img src" und bei kein Bild "a href" als Bindung benutzt.
2. Überall wo "[/url]" ist wird auseinander geschnitten und danach wieder zusammen gefügt. Beim Zusammensetzen wird unterschieden zwischen Bild und kein Bild, bei Bild wird " " und bei kein Bild "[/url]" als Bindung benutzt.

Somit wird, wenn ein Bild gefunden wird, "a href" ersetz durch "img src"  und "[/url]" gelöscht ansonsten halt nicht.

mfg Nem




EDIT:
Split("aaaa") schneidet einen Text in mehrere Teile und zwar an allen Stellen wo "aaaa" vorkommt, die "aaaa" fallen dabei weg.

EDIT2:
Am besten wäre es, wenn Du eine eigene Datei erstellst z.B. bilddarsteller.js oder so
Somit kannst Du ungestört an der Datei weiterarbeiten.
Falls es bei Dir dann Änderungen gibt, muss nicht immer alles in die ausgabe.js kopiert werden.
Einrichten ist ganz einfach:
1. eine Datei z.B. bilddarsteller.js mit Deiner Funktion thumbcreate(DEINEVARIABLE); parallel zur ausgabe.js erstellen
2. in der .ivt-Datei zu <script src="ausgabe.js"></script> noch <script src="bilddarsteller.js"></script>, am besten da drunter, schreiben
3. in ausgabe.js must Du document.write(eingangsmeldung); durch Deine Funktion mit dem Parameter eingangsmeldung thumbcreate(eingangsmeldung); ersetzen
4. Deine Datei muss, wenn kein Bildlink vorhanden ist, die Message normal ausgeben mit document.write(DEINEVARIABLE);
« Letzte Änderung: 27. Dezember 2007, 13:22:06 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



charly89

  • Besucher
  • *
  • Beiträge: 18
    • Profil anzeigen
habs in eine separate datei thumbs.js ausgelagert und die ausgabe in der letzten else von tzersoutput mit einem thumbcreate() umgeben. die schleife sieht bisher so aus:

   found = new Array();
   endungen = new Array(".jpg",".bmp",".png",".gif",".jpeg");
   for(messagepos=0; messagepos<text.length; messagepos++) { das i++ hab ich in messagepos++ geändert
      for(i=0; i<endungen.length; i++) {
         if ((text.substr(messagepos,4)==endungen) || (text.substr(messagepos,5)==endungen)) {
            found.push(endungen);
         }
      }
   }

und hier die ausgabe vom code:

document.write('
gefundene endungen:
');
   for(test=0;test<found.length;test+=2) { die imageendung kommt 2x vor beim einlesen (einmal im href und einmal in der linkbeschriftung) das array wird also gefüllt aber nur jede 2. ist demnach relevant, das muss man bei der ausgabe beachten
      document.write('['+test+'] => '+found[test]+'
');
   }
   
   return text;

die erkennung der endungen funktioniert tadellos!

bei deinem 2. post versteh ich leider nur bahnhof  :-[ habe mich dran versucht aber kriege nichts als fehler. hab den zweiten teil noch nicht gemacht, aber das hier habe ich schon geschrieben:


endungen = new Array(".jpg",".bmp",".png",".gif",".jpeg"); //endungen von bildern
   hrefsplit = text.split('a href');
   ausgabe = hrefsplit[0];
   for(j=0;j<hrefsplit.length;j++) {
      for(i=0; i<endungen.length; i++) {
         teiltext = hrefsplit[j];
         teiltext.split(">");
         if ((teiltext[j].substr(messagepos,4)==endungen) || (teiltext[j].substr(messagepos,5)==endungen)) {
            ausgabe = ausgabe+'img src'+text;
         } else {
            ausgabe = ausgabe+'a href'+text;
         }
      }
   }
   return text; //ausgabe des normalen textes

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
So wie ich es verstanden habe, muß man in der ausgabe.js
document.write(eingangsmeldung);
durch
document.write(thumbcreate(eingangsmeldung));
ersetzen.
------------------------------------
Wenn Du vergleichst, dann mußt Du jedes einzelne Element des endungen-Array vergleichen und nicht das gesamte Array.
Den hrefsplit[j] darfst Du nur einmal an der Stelle ">" splitten, und dann die ganzen vergleiche dürchführen, daher den Split vor die For-Schleife setzen.
Variable messagepos gibt es nicht und da der Link im 1. Teil von Teiltext steckt, mußt Du um die Endung zu bekommen die letzen Zeichen nehmen (.gif = 4; .jpeg = 5).
Weiterhin mußt Du auch das Richtige zurück geben.

endungen = new Array(".jpg",".bmp",".png",".gif",".jpeg"); //endungen von bildern
   hrefsplit = text.split('a href');
   ausgabe = hrefsplit[0];
   for(j=1;j<hrefsplit.length;j++) {     //1. Teil enthält nie einen Link, daher j=1
       teiltext = hrefsplit[j].split(">");   // Kann man wirklich ">" nehmen oder muß das der Form &...; codiert werden?[/b]
      for(index=0; index<endungen.length; i++) {
          teiltext = hrefsplit[j];
          teiltext.split(">");
           if ((teiltext[0].substr(teiltext[0].length-5,4)==endungen[index]) || (teiltext[0].substr(teiltext[0].length-6,5)==endungen[index])) {
              ausgabe = ausgabe+'img src'+hrefsplit[j];
           } else {
              ausgabe = ausgabe+'a href'+hrefsplit[j];
           }
      }
   }
   text = ausgabe;
   return text; //ausgabe des normalen textes


Folgendes Beispiel soll die Funktionsweise erklären, die runden Klammern zeigen die verschiedenen Teile des Textes an:
text          = (TEXT<a href="....gif">http:/...gif[/url]TEXT<a href="....jpeg">http:/...jpeg[/url]TEXT)
hrefsplit     = (TEXT<)  (="....gif">http:/...gif[/url]TEXT<)   (="....jpeg">http:/...jpeg[/url]TEXT)     //split an "a href"
ausgabe    = (TEXT<)                                                                             //  entspricht hrefsplit[0]
-------For-Schleife-wird-zum-1.mal-durchlaufen-------------
hrefsplit[1] = (="....gif">http:/...gif[/url]TEXT<)
teiltext      = (="....gif")  (http:/...gif</a)  (TEXT<)                                      //split an ">" bei hrefsplit[1] ergibt 3 teile
teiltext[0]  = (="....gif")
teiltext[0].substr(teiltext[0].length-5,4) = (.gif)      //4 Zeichen der letzten 5
ausgabe    = (TEXT<img src="....gif">http:/...gif[/url]TEXT<)  // wenn bild, dann ausgabe = ausgabe+"img src"+hrefsplit[1]
-------For-Schleife-wird-zum-2.mal-durchlaufen-------------
hrefsplit[2] = (="....jpeg">http:/...jpeg[/url]TEXT<)
teiltext      = (="....jpeg")  (http:/...jpeg</a)  (TEXT<)                                      //split an ">" bei hrefsplit[1] ergibt 3 teile
teiltext[0]  = (="....jpeg")
teiltext[0].substr(teiltext[0].length-6,5) = (.jpeg) //5 Zeichen der letzten 6
ausgabe    = (TEXT<img src="....gif">http:/...gif[/url]TEXT<img src="....jpeg">http:/...jpeg[/url]TEXT)
                                                                                                // wenn bild, dann ausgabe = ausgabe+"img src"+hrefsplit[2]
Hier sind dann noch die [/url] enthalten, die dann noch weg müssen.

EDIT: wenn ein Bild gefunden wird, kann man statt ausgabe = ausgabe+"img src"+hrefsplit[j] folgendes nehmen:
        ausgabe = ausgabe+"img src"+teiltext[0]+">"+teiltext[1].substr(1,teiltext[1].length-3)+" "+teiltext[2]
        Damit wird dann auch das [/url] weggeschnitten und somit der 2. Teil (wegschneiden von [/url])entfallen.
        3 wenn </a   kann aber sein, das < der Form &...; entspricht, dann wäre es &...;/a, also
        müßte man nicht 3 sondern 6 oder höher nehmen.
                 

Habe den Code nicht probiert.

PS: Schreibe als Variable lieber index, wenn man i nehmen würde, wird im Forum alles danach kursiv geschrieben, wie in deinem vorigem Post. Könnte das auch mit |code| und |/code| umgeben, aber dann wird es zu klein
« Letzte Änderung: 28. Dezember 2007, 14:43:43 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Habe mich nun mal daran gesetzt.
1. Wie charly89 habe ich auch eine thumbs.js, die im selben Verzeichnis wie die ausgabe.js liegt.
2. In der .ivt-Datei muß unterhalb von <script src="ausgabe.js"></script> dann noch <script src="thumbs.js"></script> geschrieben werden.
3. Weiterhin muß in der ausgabe.js-Datei document.write(eingangsmeldung); durch document.write(thumbcreate(eingangsmeldung,durchreichwert)); ersetzt werden.
4. In der .ivt-Datei müssen alles Aufrufe von TzersOutput(...) einen zusätzlich Parameter (einen 7.) mit 'yes' oder 'no' bekommen. Hier muss man 'yes' reinschreiben, wenn man die Bilder anzeigen will und 'no' für keine Ansicht der Bilder. z.B.: TzersOutput('tzers','center','yes','get','%\text%','%\name%','yes');
Für history-Messages würde ich 'no' setzen und für die anderen halt 'yes'

Inhalt der thumbs.js-Datei:
function thumbcreate(text,umwandlung) {

if (umwandlung == 'yes') {

  // Bestimmung der Breite
  if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
    fensterbreite = document.documentElement.offsetWidth;
  }
  else
    if (typeof document.body != 'undefined') {
    fensterbreite = document.all.body.offsetWidth;
    }
  bildbreite = fensterbreite * 0.5;

  // die eigentliche Umwandlung
  hrefsplit = text.split('<a class=\"link\" target=\"_self\" href');
  ausgabe = hrefsplit[0];
  for (j=1; j<hrefsplit.length;j++) {
    teiltext = hrefsplit[j].split(">");
    gefundeneendung="undefiniert";
   
    //sucht nach Bild-Links
    bildendungen = new Array(".jpg",".bmp",".png",".gif",".jpeg");
    for (i=0; i<bildendungen.length; i++) {
      if ((teiltext[0].substr(teiltext[0].length-5,4)==bildendungen[i]) || (teiltext[0].substr(teiltext[0].length-6,5)==bildendungen[i])) {
        gefundeneendung="bild1";
    }
    }
 
    switch (gefundeneendung) {
      case "bild1":
        ausgabe = ausgabe+'<br><a href="'+teiltext[1].substr(0,teiltext[1].length-3)+'"><img width="'+bildbreite+'" src'+teiltext[0]+'alt="'+teiltext[1].substr(0,teiltext[1].length-3)+'"><br>'+teiltext[1].substr(0,teiltext[1].length-3)+'</a><br>'+teiltext[2];
        break;  
      default:
        ausgabe = ausgabe+'<a href'+hrefsplit[j];
        break;
    }
  }
}
else {
  ausgabe = text;
}

return ausgabe;
}

Die Grafiken werden derzeit die  Breite von 50% der Fensterbreite haben. In der Datei thumbs.jskann dieses unter bildbreite = fensterbreite * 0.5; angepaßt werden. Bei Fenstergrößenänderung wird die Bildgröße dann verändert, wenn man das Fenster mit Alt-B neu aufbauen läßt.

Die Bilder und deren Links werden immer in neuen Zeilen dargestellt. Das dient der Übersichtlichkeit.
Wenn man mit der Maus länger auf einem Bild bleibt, dann erscheint die Adresse des Bildes. Das Bild ist anklickbar und wird im Standardbrowser geöffnet.

mfg Nem


EDIT:
Bildbreite wird falsch berechnet, wenn das Fenster frisch geöffnet wird. Bei geöffnetem Fenster ist das kein Problem.
Einfach mit Alt-B mal neu laden.
« Letzte Änderung: 28. Dezember 2007, 14:46:34 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



hacker676

  • Überall-Mitmischer
  • *
  • Beiträge: 174
  • Geschlecht: Männlich
    • Profil anzeigen
geile sache! funzt soweit auch super.

kann man da einbauen, wenn breite < 100px und höhe < 100px dann keine größenänderung? wäre bei kleineren bildern vll sinnvoll.

und vielleicht die höhe auf maximal 250px setzen und die breite dementsprechend anpassen, das wäre bei bildern die um einiges höher als breit sind besser da das bald dann unter umständen die 3-fache fensterhöhe oder so haben kann da es sich immer an der breiten von 50% orientiert.

was meinst du Nem?

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Man kann die Breite bzw. die Höhe auf einen festen Wert stellen.

Das Problem liegt halt darin, dass die Bilder nicht bekannt sind.
Sie werden erst nach dem Neugestallten der Message aus dem Internet geladen.

Vielleicht ist es sinnvoller die Höhe auf z.B. 100 fest zu setzen oder zu berechen anstatt die Breite zu berechnen.
Es sollen ja auch nur Thumbs sein.

mfg Nem


EDIT: Hier haben nun die Bilder eine Höhe von 70% des Sichtbereichs.
function thumbcreate(text,umwandlung) {

if (umwandlung == 'yes') {

  // Bestimmung der Breite
  if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
    fensterhoehe  = document.documentElement.offsetHeight;
  }
  else
    if (typeof document.body != 'undefined') {
    fensterhoehe  = document.all.body.offsetHeight;     
    }
  bildhoehe = fensterhoehe * 0.7;

  // die eigentliche Umwandlung
  hrefsplit = text.split('<a class=\"link\" target=\"_self\" href');
  ausgabe = hrefsplit[0];
  for (j=1; j<hrefsplit.length;j++) {
    teiltext = hrefsplit[j].split(">");
    gefundeneendung="undefiniert";
   
    //sucht nach Bild-Links
    bildendungen = new Array(".jpg",".bmp",".png",".gif",".jpeg");
    for (i=0; i<bildendungen.length; i++) {
      if ((teiltext[0].substr(teiltext[0].length-5,4)==bildendungen[i]) || (teiltext[0].substr(teiltext[0].length-6,5)==bildendungen[i])) {
        gefundeneendung="bild1";
    }
    }
 
    switch (gefundeneendung) {
      case "bild1":
        ausgabe = ausgabe+'<br><a href="'+teiltext[1].substr(0,teiltext[1].length-3)+'"><img height="'+bildhoehe+'" src'+teiltext[0]+'alt="'+teiltext[1].substr(0,teiltext[1].length-3)+'"><br>'+teiltext[1].substr(0,teiltext[1].length-3)+'</a><br>'+teiltext[2];
        break;
      default:
        ausgabe = ausgabe+'<a href'+hrefsplit[j];
        break;
    }
  }
}
else {
  ausgabe = text;
}

return ausgabe;
}

Bei bildhoehe = fensterhoehe * 0.7; kann die Höhe angepaßt werden.
« Letzte Änderung: 28. Dezember 2007, 17:05:14 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



hacker676

  • Überall-Mitmischer
  • *
  • Beiträge: 174
  • Geschlecht: Männlich
    • Profil anzeigen
achso... die größe is nicht bekannt, das erklärt so einige probleme die ich mit flashavataren hatte.  :D

also ich persönlich würde die feste höhe bevorzugen, dreimal scrollen für ein bild is doof.  ;D

progandy

  • Plugin-Autor
  • Akkordschreiber
  • ***
  • Beiträge: 626
    • progandy@hot-chilli.net"
    • http://progandy.miranda-vi.org"
    • Profil anzeigen
    • ProgAndy
Also man kanns so machen:
http://www.webmasterworld.com/forum91/4936.htm
<img src="http://static.flickr.com/39/94067824_8d524b6a47_o.jpg" onload="resize(this)" style="visibility: hidden;"/>
<script type="text/javascript">
function resize(img) {
  if(img.width > 100) {
    img.style.height = parseInt(img.height * 100 / img.width) + "px";
    img.style.width = "100px";
  }
img.style.visibility = "visible";
}
</script>

//Edit: So gehts besser:
<img src="http://static.flickr.com/39/94067824_8d524b6a47_o.jpg" onload="resize(this)" style="display: none;"/>
<script type="text/javascript">
function resize(img) {
img.style.display = "block";
  if(img.width > 100) {
    img.style.height = parseInt(img.height * 100 / img.width) + "px";
    img.style.width = "100px";
  }
}
</script>
« Letzte Änderung: 28. Dezember 2007, 17:16:21 von progandy »
Jetzt wo ich weiss wie es funktioniert versteh ich auch die Gebrauchsanleitung
[Status: Jabber]

hacker676

  • Überall-Mitmischer
  • *
  • Beiträge: 174
  • Geschlecht: Männlich
    • Profil anzeigen
ah genau danke,
dann würde das script so aussehen

function thumbcreate(text,umwandlung) {

if (umwandlung == 'yes') {

  // Bestimmung der Breite
  if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
    fensterbreite = document.documentElement.offsetWidth;
  }
  else
    if (typeof document.body != 'undefined') {
    fensterbreite = document.all.body.offsetWidth;
    }
  bildbreite = fensterbreite * 0.5;

  // die eigentliche Umwandlung
  hrefsplit = text.split('<a class=\"link\" target=\"_self\" href');
  ausgabe = hrefsplit[0];
  for (j=1; j<hrefsplit.length;j++) {
    teiltext = hrefsplit[j].split(">");
    gefundeneendung="undefiniert";
   
    //sucht nach Bild-Links
    bildendungen = new Array(".jpg",".bmp",".png",".gif",".jpeg");
    for (i=0; i<bildendungen.length; i++) {
      if ((teiltext[0].substr(teiltext[0].length-5,4)==bildendungen[i]) || (teiltext[0].substr(teiltext[0].length-6,5)==bildendungen[i])) {
        gefundeneendung="bild1";
    }
    }
 
    switch (gefundeneendung) {
      case "bild1":
        ausgabe = ausgabe+'<br><a href="'+teiltext[1].substr(0,teiltext[1].length-3)+'"><img width="'+bildbreite+'" src'+teiltext[0]+'alt="'+teiltext[1].substr(0,teiltext[1].length-3)+'" onload="resize(this)" style="display: none;" ><br>'+teiltext[1].substr(0,teiltext[1].length-3)+'</a><br>'+teiltext[2];
        break;  
      default:
        ausgabe = ausgabe+'<a href'+hrefsplit[j];
        break;
    }
  }
}
else {
  ausgabe = text;
}

return ausgabe;
}


//neubestimmung damit höhe max 120px und breite max 200px
function resize(img) {
img.style.display = "block";
  if(img.width > 200) {
    img.style.height = parseInt(img.height * 200 / img.width) + "px";
    img.style.width = "200px";
  }
  if(img.height > 120) {
    img.style.width = parseInt(img.width * 120 / img.height) + "px";
    img.style.height = "120px";
  }
}

das bild wird vorgeladen (DSL-user merken dass weniger) und dann die höhe und breite angepasst. hab das mal auf maximale breite von 200px und maximale höhe von 120px.
abso so funzts und das beste, ohne scriptfehler...  ;D

danke progandy
« Letzte Änderung: 28. Dezember 2007, 19:17:57 von hacker676 »

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Dann braucht man im Script doch auch nicht mehr:

  // Bestimmung der Breite
  if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
    fensterbreite = document.documentElement.offsetWidth;
  }
  else
    if (typeof document.body != 'undefined') {
       fensterbreite = document.all.body.offsetWidth;
    }
  bildbreite = fensterbreite * 0.5;


und auch width="'+bildbreite+'" kann doch dann weg, oder?
ausgabe = ausgabe+'
<a href="'+teiltext[1].substr(0,teiltext[1].length-3)+'"><img width="'+bildbreite+'" src'+teiltext[0]+'alt="'+teiltext[1].substr(0,teiltext[1].length-3)+'" onload="resize(this)" style="display: none;" >
'+teiltext[1].substr(0,teiltext[1].length-3)+'[/url]
'+teiltext[2];





EDIT:
Oder man benutzt es, um die max Breite und max Höhe anhander der Sichthöhe und -breite zubestimmen
//neubestimmung damit höhe max 120px und breite max 200px
function resize(img) {
img.style.display = "block";
  if(img.width > 200) {
    img.style.height = parseInt(img.height * 200 / img.width) + "px";
    img.style.width = maxbreite;
  }
  if(img.height > 120) {
    img.style.width = parseInt(img.width * 120 / img.height) + "px";
    img.style.height = maxhöhe;
  }
}
« Letzte Änderung: 28. Dezember 2007, 18:11:05 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



hacker676

  • Überall-Mitmischer
  • *
  • Beiträge: 174
  • Geschlecht: Männlich
    • Profil anzeigen
ja, bie breitenbestümmung kann man dann weg lassen.

jetz weiß ich auch was Tamino meint
Nur wenn ich einen Tzer erhalte, werden alle normalen Nachrichten die danach kommen unterstrichen...
Erst wenn ich Alt+B drücke ist es wie es sein sollte, oder wenn ich das Fenster schließe und wieder öffne..

kommt nach dem bild noch text wird der text in den bildlink eingebaut und somit kann das bild nicht angezeigt werden. das problem zu beheben ist mir aber zu hoch.

EDIT: also bei tzern tritt das bei mir nicht direkt auf, außer das der text "(press ALT-B to show the tZer again)" die farbe eines links hat aber keiner ist.

EDIT2: jetz wird der bildlink wieder normal angezeigt...? ich glaub es wird zeit fürs bett...  :o
« Letzte Änderung: 28. Dezember 2007, 18:54:15 von hacker676 »

Freez

  • Überall-Mitmischer
  • *
  • Beiträge: 210
  • Geschlecht: Männlich
  • Offtopic Putze
    • Profil anzeigen
    • Its me!
so bei den ganzen codes hin und her  ::) wie wuerde den jetzt die endloesung aussehn?

mfg Freez
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
- John James Osborne - Schauspieler, Bühnenautor, Journalist, Dramatiker (England, 1929 - 1994)

--
Strong Tools=>

...i hope

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Mein aktueller Stand der thumbs.js

function thumbcreate(text,umwandlung) {

if (umwandlung == 'yes') {

  // Bestimmung der Breite
  if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
    fensterbreite = document.documentElement.offsetWidth;
  }
  else
    if (typeof document.body != 'undefined') {
    fensterbreite = document.all.body.offsetWidth;
    }
  bildbreite = fensterbreite * 0.5;

  // die eigentliche Umwandlung
  hrefsplit = text.split('<a class=\"link\" target=\"_self\" href');
  ausgabe = hrefsplit[0];
  for (j=1; j<hrefsplit.length;j++) {
    teiltext = hrefsplit[j].split(">");
    gefundeneendung="undefiniert";
   
    //sucht nach Bild-Links
    bildendungen = new Array(".jpg",".bmp",".png",".gif",".jpeg");
    for (i=0; i<bildendungen.length; i++) {
      if ((teiltext[0].substr(teiltext[0].length-5,4)==bildendungen[i]) || (teiltext[0].substr(teiltext[0].length-6,5)==bildendungen[i])) {
        gefundeneendung="bild1";
    }
    }
 
    switch (gefundeneendung) {
      case "bild1":
        ausgabe = ausgabe+'<br><a href="'+teiltext[1].substr(0,teiltext[1].length-3)+'"><img width="'+bildbreite+'" src'+teiltext[0]+'alt="'+teiltext[1].substr(0,teiltext[1].length-3)+'" onload="resize(this)" style="display: none;" ><br>'+teiltext[1].substr(0,teiltext[1].length-3)+'</a><br>'+teiltext[2];
        break;  
      default:
        ausgabe = ausgabe+'<a href'+hrefsplit[j];
        break;
    }
  }
}
else {
  ausgabe = text;
}

return ausgabe;
}


//neubestimmung damit höhe max 120px und breite max 300px
function resize(img) {
img.style.display = "block";
  if(img.width > 200) {
    img.style.height = parseInt(img.height * 200 / img.width) + "px";
    img.style.width = "200px";
  }
  if(img.height > 120) {
    img.style.width = parseInt(img.width * 120 / img.height) + "px";
    img.style.height = "120px";
  }
}

Edit:
Da das Bild direkt verlinkt ist und auch ein Tooltip enthält kann man doch den nachfolgenden Link immer weg lassen.
Auch die
 bräuchte man dann doch nicht.
ausgabe = ausgabe+'<a href="'+teiltext[1].substr(0,teiltext[1].length-3)+'"><img width="'+bildbreite+'" src'+teiltext[0]+'alt="'+teiltext[1].substr(0,teiltext[1].length-3)+'" onload="resize(this)" style="display: none;" ></a>'+teiltext[2];Mehrere aufeinanderfolgende Billder könnten doch so dann nebeneinander gesetzt werden.
« Letzte Änderung: 28. Dezember 2007, 19:19:12 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



hacker676

  • Überall-Mitmischer
  • *
  • Beiträge: 174
  • Geschlecht: Männlich
    • Profil anzeigen
setzt der die bei dir nebeneinander? bei mir nicht... liegt vielleicht am skin...

hatt versucht link mit dem namen "Link" neber das bild zu setzen damit ich den link mit rechtsklick auf "Link" kopieren kann ohne den link öffnen zu müssen. macht er aber leider nicht, der setzt sogar &nbsp; in die nächste zeile.

ach hatte mch auch verschrieben //neubestimmung damit höhe max 120px und breite max 300pxda muss hinten max 200px stehn. oder unten im script das auf 300px.

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Hmmmm, habe es auch mal probiert, bei mir werden die Grafiken auch untereinander gesetzt.
Habe auch keinen plan, wo der Umbruch zustande kommt.


EDIT:
Sobald ich onload="resize(this)" style="display: none;" weglasse geht es mit dem Nebeneinander der Bilder.
« Letzte Änderung: 28. Dezember 2007, 20:32:43 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/