Der Jannemann: ein Javascript im neu erstellten Fenster ausführen

Moin Moin,

ich versuche mit >>window.document.write("<script src="noright.js" type="text/javascript"></script>");<< in ein neues HTML-Dokument ein Skript einzufügen mit dem ich die rechte Maustaste sperren kann, allerdings hängt sich der IE vollständig auf beim Ausführen des Skripts.

Wäre nett wenn mir jemand einen Tip geben kann.

Grüße
Der Jannemann

  1. Hallo Jannemann,

    Wäre nett wenn mir jemand einen Tip geben kann.

    Waere nett (und hilfreich), wenn Du uns etwas Quelltext posten wuerdest ;-)

    gruesse
    rainer groth

    --
    ss:| zu:} ls:& fo:) de:] va:| ch:] n4:° rl:? br:$ js:| ie:| fl:( mo:?
    (--> einer der letzten bauhaeusler <--)
    1. Hallo Jannemann,

      Wäre nett wenn mir jemand einen Tip geben kann.

      Waere nett (und hilfreich), wenn Du uns etwas Quelltext posten wuerdest ;-)

      gruesse
      rainer groth

      Da hat er zweifellos Recht! Was ich immer wieder nicht verstehe, was es für Vorteile mitsichbringt, wenn man einem  Fenster (bsw. Popup) alles an Quelltext per document.write übergibt. Bei einigen Ausnahmen sehe ich das ein - grade wenn es um die Realisierung von Onlineshops, Foren, etc. geht, wo es zur Übergabe von Variablen und deren Ausgabe einer besseren Möglichkeit ermangelt.

      Ich sehe aber, daß Du nur ein Konstrukt brauchst um Deinen Quelltext zu verbergen. Das ist in jeder Hinsicht aussichtslos!!!!! Zumal Du ihn ja extra im öffnenden Window auflisten müßtest (Gott welche Arbeit - Arbeit für Masochisten!), oder auf eine *.js referenzieren müstest, die dann doch jeder lesen kann.

      Wenn DU bei Deinem Vorhaben Variablen übergeben mußt, über gib sie dem zu öffnenden Fenster als namen (in SELFAKTUEL gibtes darüber einen sehr interessanten Bericht).
      Die Variablen kannst Du ja dann per scripting auswerten und per document.write ausgeben. Benutze jedoch eine "POPUP".htm der Du schon ein Grundgerüst verpaßt hast und fügst folgendes ein:

      <body oncontextmenu="return false" oncontext="return false">

      Schätzungsweise 90 % Deiner Besucher werden den Quelltext nie sehen, die restlichen erst nach einer Suche nach der function, oder haben scripts deaktiviert.

      Gruß aus Berlin!
      eddi

      1. Die Variablen kannst Du ja dann per scripting auswerten und per document.write ausgeben. Benutze jedoch eine "POPUP".htm der Du schon ein Grundgerüst verpaßt hast und fügst folgendes ein:

        <body oncontextmenu="return false" oncontext="return false">

        Hi Eddi,

        ich hab den Abschnitt so eingefügt und das funktioniert auch wunderbar, bis auf eine Kleinigkeit. Bei den neueren Browsern gibt's automatisch ein Feld wenn man über ein Bild geht in dem auch ein Button zum Speichern drinne ist, kann man dieses Feld auch noch ausschalten?

        Es geht mir darum, das ein "normal"-Anwender nicht ohne weiteres die Bilder von meiner Homepage auf seinen Rechner speichern kann. Alle die dann noch an meinen "Sicherheitsvorkehrungen" vorbei kommen sollen die Bilder haben, ich weiß selber, dass man sie nicht vollständig verbergen kann und wenn man nur den Browsercache danach durchsucht.

        Am optimalsten finde ich bis jetzt dieses Skript welches ich am liebsten irgendwie in das neue Fenster einfügen möchte:
        ---->"noright.js":<----
        if (document.layers){
          window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
          window.onmousedown=rightclick;
          window.onmouseup=rightclick;

        function rightclick(e){
            if (e.which == 3) {
              alert('Tja... rechte Maustaste blockiert...');
              return false;
            } else {
              return true;
            }
          } //Ende rightclick
        } //Ende if

        if (document.all){
          function click() {
            if (event.button==2) {
              alert('Tja... rechte Maustaste blockiert...')
            }
            if (event.button==3) {
              alert('Tja... rechte Maustaste blockiert...')
            }
          } //Ende click
          document.onmousedown=click
        } //Ende if

        --->dieses Skript in "bilder.js":<-----

        var neueswin=0;                    /* globale neueswin-Variable */
        /* Fenster schliessen: ------------------------------------ */
        function close_picture()
        {
          if (neueswin)                              /* wenn existent */
            if (!neueswin.closed)                  /* wenn noch offen */
              neueswin.close();                            /* mach zu */
        }

        /* Fenster oeffnen: --------------------------------------- */
        function open_picture(picname)
        {
          close_picture();                               /* mach zu */

        neueswin=open("","neueswin","left=0,top=0,width=1,height=1,resizable=yes,status=no,dependent=yes,toolbar=no,menubar=no,location=no,scrollbars=no");
          neueswin.moveTo(screen.width,screen.height);
                                               /* Dokument oeffnen: */
          neueswin.document.open("text/html","replace");
                                             /* Dokument schreiben: */
          neueswin.document.write("<html>\n<head>\n");
          neueswin.document.write("<title>Frank-Forster.com</title>\n");
          neueswin.document.write("</head>\n");
            /* Benachrichtigung des opener-Fensters nach dem Laden: */
          neueswin.document.write("<body oncontextmenu="return false" oncontext="return false" onLoad="opener.picture_size(window,document.images[0])" bgcolor="#FFFFFF">\n");
                                               /* Bild reinbasteln: */
          neueswin.document.write("<p align=center><img src=""+picname+"" hspace="0" vspace="0" ALT=""+picname+""></p>");
          neueswin.document.write("</body>\n</html>");
                                            /* Dokument schliessen: */
          neueswin.document.close();
        }

        /* Fensterdaten evaluieren und Fenstergroesse setzen: ----- */
        function picture_size(neueswin,image)
        {
          var output;
                          /* Fenstergroesse und Fensterlage setzen: */
          neueswin.resizeTo(image.width+50,image.height+70);
          neueswin.moveTo((screen.width-image.width-50)/2,(screen.height-image.height-50)/2);
                                             /* Zeichenkette bauen:
          output="src: "+image.src+"\n\n";
          output+=" width: "+image.width+"\n";
          output+="height: "+image.height+"\n";
                                                  /* Output setzen: document.form1.imagedata.value=output; */
                                                  /* Fenster nach vorn: */
          neueswin.focus();
        }
        ----------------------

        Ist da ne Chance?

        Grüße
        Der Jannemann

        1. Hallo Jannemann,

          neueswin.document.write("<html>\n<head>\n");
            neueswin.document.write("<title>Frank-Forster.com</title>\n");

          Schau mal hier: http://selfhtml.teamone.de/javascript/intro.htm#javascriptdateien.

          neueswin.document.write("</head>\n");

          gruesse
          rainer groth

          --
          ss:| zu:} ls:& fo:) de:] va:| ch:] n4:° rl:? br:$ js:| ie:| fl:( mo:?
          (--> einer der letzten bauhaeusler <--)
          1. neueswin.document.write("<html>\n<head>\n");
              neueswin.document.write("<title>Frank-Forster.com</title>\n");

            Schau mal hier: http://selfhtml.teamone.de/javascript/intro.htm#javascriptdateien.

            neueswin.document.write("</head>\n");

            gruesse
            rainer groth

            Hallo Rainer

            Das funktioniert ja leider nicht so einfach, wenn ich neueswin.document.write("<script src="funktion/noright.js" type="text/javascript"></script>"); verwende hängt sich der IE auf!

            have a look:
            http://frank-forster.com

            dann auf das Bild klicken!!
            dann IE-Task beenden!

            Grüße
            Der Jannemann

            1. Hallo Jannemann,

              Auszug aus Deiner urspruenglichen HTML-Datei:

              <a href="javascript:open_picture("bilder/gallerie/large029.jpg")">
              <img border="0" src=bilder/gallerie/index/pic029.jpg>
              </a>

              Probleme:

              1. Es wird eine Zeichkette falsch uebergeben - Zeichenketten MUESSEN in Anfuehrungszeichen gesetzt werden (also: 'bilder/gallerie/large029.jpg')

              2. Der Wert des 'src'-Attibuts des 'img'-Tags gehoert ebenfalls in Anfuehrungszeichen.

              Auszug aus Deiner "bilder.js":

              picwin.document.write('<script src="funktion/noright.js" type="text/javascript">\n</script>\n');

              Problem:

              Die diversen '\n' sind ueberfluessig - wenn Du im Quelltext Zeilenumbrueche haben moechtest, schau hier: http://selfhtml.teamone.de/javascript/objekte/document.htm#writeln.

              gruesse
              rainer groth

              --
              ss:| zu:} ls:& fo:) de:] va:| ch:] n4:° rl:? br:$ js:| ie:| fl:( mo:?
              (--> einer der letzten bauhaeusler <--)
              1. oki,

                aber es funktioniert noch immer nicht, der Link funktioniert sobald ich die Zeile kommentiere einwandfrei! Und die \n sind ja auch nur für die Schönheit, ich kann das auch alles in einer Zeile übergeben. Mit writeln muss ich allerdings jede Zeile auch im Programmtext scheiben, mit write in Kombination mit \n kann ich wenn ich will auch mehrere Zeilen in eine Zeile packen.

                Grüße
                Der Jannemann

                1. Hallo Jannemann,

                  aber es funktioniert noch immer nicht ...

                  ... online ;-)

                  Es scheint zu einer unschoenen Ueberschneidung zwischen Anweisungen in 'bild.js' und 'noright.js' zu kommen.

                  Abgesehen davon, dass XaraX mit seinem Beitrag IMO voellig recht hat, rate ich Dir, Deinen Quelltext zu validieren, und Dich bei Gelegenheit mit CSS zu beschaeftigen ('height="*"' im Zusammenhang mit Tabellen ist z.B. Schmarrn).

                  Um diese Angelegenheit zu einem (vorlaeufigen) Ende zu bringen:

                  schau mal hier: http://home.arcor.de/rainergroth/Jannemann.

                  Die Menueleiste des neuen Fensters lasse ich hier verfuegbar, damit Du bequem sehen kannst, dass

                  ... mit write in Kombination mit \n kann ich wenn ich will auch mehrere Zeilen in eine Zeile packen.

                  auch ein Schmarrn ist - Du schreibst mehrere 'n', die Du mit '' fuer den Parser maskierst ;-)

                  Ach ja: informiere Dich bitte schnellstens ueber den Sinn und die Notwendigkeit von 'DOCTYPE'-Angaben.

                  gruesse
                  rainer groth

                  --
                  ss:| zu:} ls:& fo:) de:] va:| ch:] n4:° rl:? br:$ js:| ie:| fl:( mo:?
                  (--> einer der letzten bauhaeusler <--)