HÜÜÜÜLFE! Sch... Javascript!? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Nick (66 Beiträge) am Freitag, 4.Januar.2002, 14:58.
    HÜÜÜÜLFE! Sch... Javascript!?

      HÜÜÜLFE!

      Bisher wurde die URL einwandfrei an das neu öffnende Fenster übertragen.
      Seit ich aber das fenster über Javascript öffnen lasse, wird die URL (z.B.: http://www.vitaminic.co.uk/cgi-php/get_file.php3?modo=1%26bid=88645 ) zerstückelt (in http://www.vitaminic.co.uk/cgi-php/get_file.php3?modo=1)!

      Mein altes Template beinhaltete u.a.:

      <loop code=perl db=my_db>
      out "<b><a href=http://baseportal.de/cgi-bin/baseportal.pl?htx=/Nick_Mash/counter&urlgo=";
      out convert_url($Download_Now);
      out <<EOF;
      &downlId=$_id target=_blank>$Title</a></b><br><br>
      EOF
      </loop>
      


      Mein neues (mit javascript):

      <loop code=perl db=my_db>
      $url=convert_url($Download_Now);
      out <<EOF;
      <b><a href="javascript:auf('http://baseportal.de/cgi-bin/baseportal.pl?htx=/nicky/counter&urlgo=$url&downlId=$_id')">$Title</a></b><br><br>
      EOF
      </loop>
      

      Warum wird hier die URL zerstückelt??


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Nick (66 Beiträge) am Freitag, 4.Januar.2002, 14:58.
    HÜÜÜÜLFE! Sch... Javascript!?

      HÜÜÜLFE!

      Bisher wurde die URL einwandfrei an das neu öffnende Fenster übertragen.
      Seit ich aber das fenster über Javascript öffnen lasse, wird die URL (z.B.: http://www.vitaminic.co.uk/cgi-php/get_file.php3?modo=1%26bid=88645 ) zerstückelt (in http://www.vitaminic.co.uk/cgi-php/get_file.php3?modo=1)!

      Mein altes Template beinhaltete u.a.:

      <loop code=perl db=my_db>
      out "<b><a href=http://baseportal.de/cgi-bin/baseportal.pl?htx=/Nick_Mash/counter&urlgo=";
      out convert_url($Download_Now);
      out <<EOF;
      &downlId=$_id target=_blank>$Title</a></b><br><br>
      EOF
      </loop>
      


      Mein neues (mit javascript):

      <loop code=perl db=my_db>
      $url=convert_url($Download_Now);
      out <<EOF;
      <b><a href="javascript:auf('http://baseportal.de/cgi-bin/baseportal.pl?htx=/nicky/counter&urlgo=$url&downlId=$_id')">$Title</a></b><br><br>
      EOF
      </loop>
      

      Warum wird hier die URL zerstückelt??

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Freitag, 4.Januar.2002, 16:29.
    Re: HÜÜÜÜLFE! Sch... Javascript!?

      Ich würde allgemein anstelle von & in einem URL die Zeichenfolge "&amp;" verwenden, denn das Symbol & ist in HTML das Anfangssymbol für einen Zeichennamen.

      Allgemein gilt das für die Zeichen <, >, & und " (also &lt; &gt; &amp; und &quot; immer mit abschließendem ";").
      Gleiches gilt für die deutschen Umlaute und das scahrfe ß (&szlig;).

      Da müßte jetzt Deine Zeile wie folgt aussehen:

      <b><a href="javascript:auf('http://baseportal.de/cgi-bin/baseportal.pl?htx=/nicky/counter&amp;urlgo=$url&amp;downlId=$_id')">$Title</a></b><br><br>
       
      
      Grüße Jurenda

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Freitag, 4.Januar.2002, 16:36.
    Re: HÜÜÜÜLFE! Sch... Javascript!?

      Verdammtes HTML, das hat mir doch glatt mein ...amp; rausgeschmissen. Mal schaun, ob's jetzt geht:

      Korrekter Code (2. Versuch):

      <b><a href="javascript:auf('http://baseportal.de/cgi-bin/baseportal.pl?htx=/nicky/counter&amp;amp;urlgo=$url&amp;amp;downlId=$_id')">$Title</a></b><br><br>
      

      Gruß Jurenda

     Antworten

    Beitrag von Nick (66 Beiträge) am Freitag, 4.Januar.2002, 17:02.
    Re: HÜÜÜÜLFE! Sch... Javascript!?

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Freitag, 4.Januar.2002, 17:23.
    Re: HÜÜÜÜLFE! Sch... Javascript!?

      Das mußt jetzt genauer erklären.

      Es funktionieren bei mir beide Links!

      Ich hab Deinen Sorcecode ausprobiert und das geht auch bei mur in einem eigenen Template!

      Whats wrong?

      Gruß Jurenda

     Antworten

    Beitrag von Nick (66 Beiträge) am Samstag, 5.Januar.2002, 17:29.
    Re: HÜÜÜÜLFE! Sch... Javascript!?

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Sonntag, 6.Januar.2002, 11:29.
    Re: HÜÜÜÜLFE! Sch... Javascript!?

      Ohne, das ich jetzt einen Test durchgeführt habe:

      Ich vermute mal, daß Javascript Dein %26 wieder in ein & converdiert und dann weitergibt.

      Bleibst Du dabei, dann mußte in Deinem aufgerufenen Zählertemplate (Zwischentemplate) Du einfach schreiben: "...get_file.php3?modo=$mode&bid=$bid"

      Solltest Du jedoch Deine weiteren Parameter wie z.B. bid= nicht kennen, dann würde ich folgendes testen:

      Wie legt man einen Metazeichen-Konverter aufs Kreuz =>

      Rufe deine Seite auf mit http://www.vitaminic.co.uk/cgi-php/get_file.php3?modo=1%2526bid=88645

      Dadurch wird das Javascript Dein %25 in ein %-Zeichen umwandeln und in folge beim window.open im Link drinnenstehen: ...modo=1%26bid=88645

      Gruß Jurenda

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Sonntag, 6.Januar.2002, 19:36.
    Re: HÜÜÜÜLFE! Sch... Javascript!? NEIN => Sch...IExplorer!

      Ich bin derzeit mit einem ähnlichen Problem beschäftigt und hab mir das ganze mal ganz genau angesehen!

      Uff, halber Tag nur gestaunt über den sch...IE!

      Ursache Deines Problems ist NICHT Javascript, sondern der Internet Explorer von diesem scheiß M$!
      Wenn Du Dein Problem mit dem Netscape betrachtest wirst Du feststellen, das es dort PROBLEMLOS funktioniert.

      Bei M$ wandelt das window.open() die Sonderzeichen um (NS macht das richtigerweise nicht!). Und das ganze passiert deshalb, weil Du in Deiner URL 2 mal ein "?" hast. M$'s window.open() fügt leider nach dem 2. ? scheinbar ein & ein. Dadurch wird auch Dein Parameter urlgo= nur bis zum ? gefüllt. Dafür gibt es weitere Parameter modo= und eventuell sogar bib=.

      Durch Verwendung von %26 bzw. %2526 kannst Du M$ davon überzeugen, das ganze korrekt zu konvertieren, aber es scheitert beim 2. ? und ausserdem funktioniert es nicht mehr mit dem Netscape!

      Für die Problematik gibts jetzt 2 Lösungen, um stabil und unabhängig zu werden.

      Lösung 1):
      ========

      Du schreibst Dir eine Funktion pack_url, die Du dann zum Beispiel so in ein out "urlgo=".pack_url($urlgo) packst.

      Diese Funktion konvertiert eindeutig Deinen kompletten String mit allen darin enthaltenen Sonderzeichen in eine Zeichenfolge bestehnd ausschließlich aus Buchstaben.

      Danach brauchst Du eine 2. Funktion, die dann diese kodierte Zeichenfolge wieder in den ursprünglichen String zurückkonvertiert. Aufzurufen mit z.B.:

      $urlgo = unpack_url($urlgo);
      

      Diese sicher elegante, aber aufwendige Lösung ist leider gescheitert, weil BASEPORTAL die Perl-Funktion pack abgedreht hat. Alle anderen Möglichkeiten von Bit und Byte-Vertschiebereien hab ich mir jetzt nicht überlegt, da es mit der Hand programmiert recht aufwendig ist. Aber vielleicht beherrscht das jemand besser als ich und schreibt eine entsprechende Funktion, die stabil und geräteunabhängig ist. Diese Funktion müßte dann aber auch als Javascript verfügbar sein!

      Lösung 2):
      ========

      Du verzichtest auf Deine Sonderzeichen und baust Deinen Url-Aufruf nur mit einem (!) ? und dann nurmehr mit lauter &-Symbolen. Im aufgerufenen Template bastelst Du Dir dann aus den übergebenen Parametern (stehen ja in %_get) Deinen ursprünglich gewünschten Url zusammen. Das dazu notwendige Progi schaut so aus:

      <perl>
      %param = %_get;
      delete $param{htx};
      delete $param{downlId};
      $urlgo = delete $param{urlgo};
      for (values %param) { $_ = '='.$_.'&'; }
      $urlgo = $urlgo.'?'.join("", %param);
      chop($urlgo);
      </perl>
      

      Dabei werden in den ersten beiden delete-Zeilen jene Parameter rausgeschmissen, die Dein Zwischentemplate zur Steuerung benötigt. Sollten da noch weitere Parameter dazukommen, mußt Du die da natürlich noch eintragen. Im 3. delete kommt der Parameter urlgo= in die entsprechende Variable. Der Rest in %param sind jetzt alles Parameter, die an unser $urlgo drangehängt werden müssen.

      Diese Geschichte funktioniert sowohl als Link als auch als window.open()!

      Zum Ausprobieren hab ich mir ein Testtemplate geschrieben. Dazu der Link:

      http://baseportal.de/cgi-bin/baseportal.pl?htx=/direkt/problems/metasymbol

      Dort findest Du auch gleich den Quelltext zum Anschauen.

      Gruß Jurenda

      PS.: Ah, bevor ichs vergesse. In einem der letzten Antworten hab' einigen Mist verzapft, aber ich hab da dazugelernt! In den Urls schreib bitte kein &amp; sondern lediglich ganz normal ein &-Symbol! Im Testtemplate ist's auch so.

     Antworten

    Beitrag von Nick (66 Beiträge) am Montag, 7.Januar.2002, 09:48.
    Re: HÜÜÜÜLFE! --> HUT AB!

      hallo Jurenda,

      da fehlen mir ja die Worte! Hab's erst heute gelesen, und werde mich jetzt erstmal damit beschäftigen müssen - ist alles noch relativ neu für mich! Auf jeden Fall vielen, vielen Dank für Deinen Support - da werde ich wohl der Danksagung an Sander noch was hinzufügen müssen ;-) (http://www.rockabillymp3.com)

      Grüße aus Düsseldorf


      Nick

     Antworten


     
 Liste der Einträge von 52051 bis 52201:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.12s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!