Manticor: JS an Opera anpassen

Hallo!

Folgendes JS funktioniert mit NS4.7, IE5.x und NS6. Opera weigert sich jedoch vehement die Bilder darzustellen.

function neuesfenster(bildurl,x,y)
{
neu=open("","neu","resizable=0,width="+x+",height="+y);
neu.document.open("text/html");
neu.document.write("<html><body leftmargin='0' topmargin='0' marginheight='0' marginwidth='0'><img src="+bildurl+" name='bild1'></body></html>");
neu.document.close();
}

Der Aufruf erfolgt aus einer HTML-Seite per <a href="javascript:neuesfenster('bild.gif','100','120');")>klick</a>

Habe auch schon versucht, den bildurl-String zu verändern, so dass er von ' oder " umrahmt wird, aber das alles hat null gebracht. Wenn man das Script in Opera laufen lässt, dann öffnet er das Fenster in der richtigen Grösse und gibt als Text 'IMAGE' aus. Bei den Eigenschaften dazu ist das Bild 0x0 Pixel gross und adressenlos.

Hat jmd. eine Idee?

Danke schonmal.

Manti

  1. Hi

    2 Veränderungen müssten helfen,

    1.) schreibe anstelle von

    <a href="javascript:neuesfenster('bild.gif','100','120');")>klick</a>

    <a href="#" onClick="neuesfenster('bild.gif','100','120');return false;")>klick</a>

    ich weiss, so steht es auch in SELFHTML, ich halte jedoch diese Technik für sinnvoller, da man ja einen Link nur als Mittel zum Zweck benutzt und nicht mehr als Link. Opera scheint damit besser klar zu kommen.

    Das return false; unterbindet den Link.

    2.) Lade erstmal eine "leere" datei in das Fenster.

    neu=open("blank.html","neu","resizable=0,width="+x+",height="+y);

    blank.html sollte es wirklich geben, was dadrin steht - egal

    gruss

    Curt

    1. Hallo!

      <a href="#" onClick="neuesfenster('bild.gif','100','120');return false;")>klick</a>

      ich weiss, so steht es auch in SELFHTML, ich halte jedoch diese Technik für sinnvoller, da man ja einen Link nur als Mittel zum Zweck benutzt und nicht mehr als Link. Opera scheint damit besser klar zu kommen.

      Das return false; unterbindet den Link.

      Besser noch: <a href="bild.gif" onClick="neuesfenster('bild.gif','100','120');return false;" target="_blank">klick</a>,
                            ^^^^^^^^                                                               ^^^^^^^^^^^^^^^
      so wird das Bild auch bei ausgeschaltetem JavaScript gezeigt. Und wir wollen doch niemanden vergraulen, oder?

      Gruss Markus

      1. » Besser noch: <a href="bild.gif" onClick="neuesfenster('bild.gif','100','120');return false;" target="_blank">klick</a>,

        ^^^^^^^^                                                               ^^^^^^^^^^^^^^^
        so wird das Bild auch bei ausgeschaltetem JavaScript gezeigt. Und wir wollen doch niemanden vergraulen, oder?

        nein, sicher nicht, mach ich normalerweise auch so, habs nur übersehen. Hatte es kurz unter opera getestet und das alleine hat noch nicht geholfen, nur die kompination aus beidem 1.) leere seite laden und 2.) onCLick als aufruf.

        gruss

        Curt

        1. Danke euch!

          Bin gerade erst zurück gekommen. Hab also noch nichts getestet, aber mit den Vorschlägen werde ich erstmal eine Weile zu werkeln haben.

          Melde mich dann mit neuen Probelmen oder Erfolgserlebnis :).

          1. Hallo nochmal!

            Es hat geklappt und zwar mit dem Aufruf:
            <a href="#" onclick="javascript:neuesfenster('startbild3.jpg','546','249')">Hier hoffentlich für Opera</a>

            Skript selber ist unverändert (auc keine blank.html benötigt) und für das # habe ich mich entschieden, da mit aktiviertem JS immer 2 Fenster aufgingen, wenn noch eine sinnvole href-Angebe da stand, aber für Non-JS-Surfer ist anderweitig gesorgt auf der Page :).

            Danke.

            Manticor

      2. Ich weis nicht wie es bei Manticor ist aber bei mir geht's damit auch nicht...

        Ihr habt doch hoffentlich auch wirklich versucht ein vorhandenes bild zu laden, und nicht blos auf einen Platzhalter für ein Bild geachtet??? Der ist nämlich immer da! Auch, wenn man ein echtes Bild benutzt. Zumindest bei mir ging das nicht im Opera. Also, wenn ich nicht falsch kopiert habe, dann ist das nicht die Lösung.

        Nehmt es nicht so schwer. Die "Käferjäger" sind ständig aktiv :-)

        1. Interessant wäre welche Version von Opera, beim 5.02er klappts, beim 4.01er wiederrum nicht (gerade getestet).

          gruss

          Curt

  2. Hallo!

    Folgendes JS funktioniert mit NS4.7, IE5.x und NS6. Opera weigert sich jedoch vehement die Bilder darzustellen.

    function neuesfenster(bildurl,x,y)
    {
    neu=open("","neu","resizable=0,width="+x+",height="+y);
    neu.document.open("text/html");
    neu.document.write("<html><body leftmargin='0' topmargin='0' marginheight='0' marginwidth='0'><img src="+bildurl+" name='bild1'></body></html>");
    neu.document.close();
    }

    ich habs ein wenig verändert (vor alle ' und " ein \ gesetzt, wo es wichtig war und einen Alternativtext für das Bild an die Funktion übergeben, der auch angezeigt wurde), aber gebracht hats nichts. Das Bild war immer noch nicht da.

    Der Aufruf erfolgt aus einer HTML-Seite per <a href="javascript:neuesfenster('bild.gif','100','120');")>klick</a>

    Da hab ich nur noch den Alt-Text dazugebaut.

    Habe auch schon versucht, den bildurl-String zu verändern, so dass er von ' oder " umrahmt wird, aber das alles hat null gebracht. Wenn man das Script in Opera laufen lässt, dann öffnet er das Fenster in der richtigen Grösse und gibt als Text 'IMAGE' aus. Bei den Eigenschaften dazu ist das Bild 0x0 Pixel gross und adressenlos.

    Hat jmd. eine Idee?

    Idee was man anders machen kann? Nein habe ich auch nicht. Aber da sich Opera auch weigert den Quelltext des Erzeugten Fensters anzuzeigen, was im Internet Explorer geht, gehe ich von einem fehler im Browser aus. Zumal er ja scheinbar versteht, was man von ihm will. Er zeigt nur kein Bild an. Dafür allerdings den von mir eingebauten alternativtext.

    Ich hab da auch noch ein Problem mit Opera auf einer meiner Seiten:
    Drei Bilder untereinander als Links in einer Tabelle, die mit CSS Positioniert ist. Die Bilder sind dazu noch mit Onmouseover bestückt und werden ausgetauscht (sollten Sie jedenfalls.)
    Nach dem letzten Bild eine Leere Zeile, dann ein weiterere Link, diesmal aber als Text.

    Das Problem ist jetzt: Der Textlink läßt sich anklicken, der Link Hinter dem Bild darüber auch (sogar mit onmouseover- Bildwechsel). Aber bei den Beiden Bildern darüber funktioniert weder der Link noch der OnMouseOver effekt. Toll ist, das es in allen anderen Browsern, mit denen ich das getestet habe ohne Probleme geht.

    Was ich damit sagen will??? In der Software dürfte, wie in so vielen anderen Programmen auch, noch der eine oder andere "Käfer" sein unwesen treibt. Also: Warten auf die "Starship Troopers", die sich dieser speziellen Art von "Bugs" annehmen werden ;-)

  3. Hallo Manticor,

    ich habe das mal lokal mit dem Opera 5.11 ausprobiert und bekam kein Bild angezeigt, bis ich das Bild-File
    mit der vollen Adresse aufrief - und dann bekam ich was
    zu sehen.

    relativ addressiert - keine Anzeige

    neu.document.write("<html><body><img src=""+bildurl+"" name="bild1"></body></html>");

    volle Adresse - Bild wird angezeigt 8)

    neu.document.write("<html><body><img src="file://localhost/E:/html/optest/"+bildurl+"" name="bild1"></body></html>");

    Viele Grüße Günter