JavaScript Script im Script aufrufen

VIPbanner_de

www.VIPbanner.de
ID: 72674
L
1 Mai 2006
2.598
150
Hallo,
ich versuche das jetzt mal als Java-Script Laie einigermaßen verständlich zu erklären. Ich möchte auf einer externen Seite einen HTML Quelltext per Java Script aufrufen.. Das ist ja soweit kein Problem. Zielseite baut z.B.

<SCRIPT LANGUAGE="JavaScript" SRC="https://www.domain.de/java/script.js"></SCRIPT>

ein und darüber gebe ich den Content aus. z.B. nur einen Text wie TEST. Dann sieht der Quelltext wie folgt aus:

document.write('TEST');

Wenn ich aber darüber nicht nur Text ausgeben möchte, sondern ein Java Script Code, gibt es probleme. Hier mal ein Auszug des Codes wie er auf der Zielseite ausgebebn wird:

..........
document.write('<script type="text/javascript" language="JavaScript">');
document.write('function set_Opacity(about, opacity) {');
document.write('var object = about.style;');
document.write('object.opacity = (opacity / 100);');
document.write('object.MozOpacity = (opacity / 100);');
document.write('object.KhtmlOpacity = (opacity / 100);');
document.write('object.filter = "alpha(opacity=" + opacity + ")";');
document.write('}');
document.write('function init_Layer() {');
document.write('div_Dimmer.style.height = get_window_height(2) + "px";');
document.write('document.body.appendChild(div_Dimmer);');
document.write('document.body.appendChild(div_TopLeft);');
document.write('document.body.appendChild(div_TopBar);');
document.write('move_Ad();');
document.write('darken_Dimmer();');
document.write('}');
document.write('function darken_Dimmer() {');
document.write('if (var_Dimmer_opacity < 70) {');
..........
 
Und warum lässt du den ganzen document.write()-Quatsch nicht einfach weg? Sollte problemlos funktionieren, sonst würde ja auch das document.write nicht gehen.

Du musst nur das <script type="text/javascript" language="JavaScript"> weglassen.
 
Zum einen: <script language="javascript"... schreibt man schon seit dem 18 Jahrhundert nicht mehr, sondern: <script type="text/javascript"...

Und was genau willst du machen? Das JS-Snippet als Text ausgeben? Dann würde ich einige Sonderzeichen durch die HMTL-Entitäten ersetzten.
z.B.:
document.write('<script type="text/javascript">');
 
erst mal danke für die Tipps... colspan hatte mir schon sehr via PN geholfen. Das Script ansich wird nun einfach in eine extra Datei geschrieben und in der anderen Datei eingebunden.

Jetzt wäre noch eine Kleinigkeit offen. und zwar kann man ein Java script in etwa so dynamisch aufbauen dass eine variable übergeben wird beim aufruf:

Beispiel:
Dateiname: test.js
Variable: $variable ="Max";

Datei würde dann so eingebunden: <script type="text/javascript" src="test_$variable.js"></script>

test_Max.js wäre dann das Ergebnis und die test.js würde dann mit "Max" weiterarbeiten können.

Ich leite das jetzt etwas aus PHP ab.. gibt es sowas auch auf JS Basis?
 
...
Jetzt wäre noch eine Kleinigkeit offen. und zwar kann man ein Java script in etwa so dynamisch aufbauen dass eine variable übergeben wird beim aufruf:

Beispiel:
Dateiname: test.js
Variable: $variable ="Max";

Datei würde dann so eingebunden: <script type="text/javascript" src="test_$variable.js"></script>

test_Max.js wäre dann das Ergebnis und die test.js würde dann mit "Max" weiterarbeiten können.
...

So jedenfalls nicht. Der Browser würde "test_Max.js" anstelle von "test.js" laden (oder es zumindest versuchen). Solange die Anzahl der für für $variable möglichen bzw. zulässigen Werte klein ist könntest Du noch mit einzelnen Dateien arbeiten ("test_Max.js", "test_Moritz.js", test_WitweBolte.js", ...), das wird aber schnell unübersichtlich. Um es in einer einzigen Datei abarbeiten zu können müßte dieses Script dann auch noch feststellen können, unter welchem Namen es eingebunden wurde. Ob das geht? k.A.

JavaScript kennt aber globale Variablen, diese sind im gesamten Dokument (auch im eingebundenen Teil) verfügbar. Globale Variablen werden idR außerhalb von Funktionen deklariert. Variablen, die innerhalb einer Funktion ohne das Schlüsselwort var deklariert werden, sind ebenfalls global.

https://de.selfhtml.org/javascript/sprache/variablen.htm#definieren
 
hi, also die Anzahl der Möglichkeiten ist im tausender Bereich :) es sollen nämlich Usernamen übergeben werden.
 
Hast Du die Möglichkeit, auf dem Server PHP einzusetzen? Dann könntest Du nämlich einfach test.php?username=Max aufrufen, das entsprechende JS in PHP generieren, header('Content-Type: text/javascript'); senden, damit es auch als JS erkannt wird und hast somit Dein personaliertes JS.

Mittels mod_rewrite könnte man den Dateinamen noch etwas aufhübschen, wenn man möchte.
 
Hab noch eine ergänzende Frage zum Java Script:

im Script wird eine Reloadsperre erzeugt. Wie stelle ich die auf 30 min ein?

.....
var popPause = 600*3600 || true; //false falls back to session instead of time in seconds
......
weiter unten....
if (popPause != false)
{
var cend = new Date();
var reload = cend.getTime() + popPause;
cend.setTime(reload);
document.cookie="alb=1; expires=" + cend.toGMTString();
}
else document.cookie="alb=1";
setTimeout('init_Layer()');
var Layer_active = 'ok';
}
 
Dir ist schon bewusst, dass eine Javascript-Reloadsperre für den Allerwertesten ist?

Javascript wird vom Browser, also Clientseitig, interpretiert.
Ein Reload-Sperre muss aber Serverseitig interpretiert werden, sonst kann man sie einfach umgehen.
 
ja das ist klar.. für mein Layeradscript reicht das aber. Ich glaube nicht das einer einen Nutzen davon hat das zu umgehen :)
 
Dann wollen mir alle ganz feste die Daumen drücken daß die bösen Buben das auch nicht glauben...
 
Ach du Schande. Wenn ich schon diesen "Programmierstil" sehe...

var popPause = 600*3600 || true;
popPause soll 600*3600 oder true sein???
var popPause = 600*3600;
...
if (popPause != false)
Was soll das denn?
if (popPause)
...
setTimeout('init_Layer()');
setTimeout erwartet 2 Parameter

Wenn ich dich richtig verstanden habe, willst du, dass nach einer bestimmten Zeit die Funktion init_Layer() - Unterstriche in Methodennamen.... grrr.... - aufgerufen wird. Diese blendet dann Werbung oder sonst was ein.
Wie wärs denn mit:
Code:
[s]window.setTimeout('init_Layer()', popPause);[/s]
ich meinte:
window.setInterval('init_Layer()', popPause);
So wird - solange man die Seite nicht wechselt - alle popPause nach die Funktion aufgerufen.
 
Zuletzt bearbeitet: