ein Javascript im neu erstellten Fenster ausführen
Der Jannemann
- javascript
0 rainer groth0 XaraX
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
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
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
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
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
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
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
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
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