Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2005 Teil von Juni

SELFHTML Forumsarchiv
Dynamisches Ändern eines JavaScripts

Informationsseite
  1. Seite (JAVASCRIPT) Dynamisches Ändern eines JavaScripts von Vadym, 30. 06. 2005, 10:26
nach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Vadym, 30. 06. 2005, 10:26

Folgendes Problem:
Von meinem Provider bekomme ich ein JavaScript zu Verfügung gestellt, dabei wird dieser so in meine Seite eingebunden: <script type="text/javascript" charset="UTF-8" src="http://www.***.de/tinc?key=script">.
Intern sieht dieser JavaScript so aus: "document.writeln('<div style...........)".

Jetzt möchte ich innerhalb des Scriptes etwas ersetzen, z.B. statt "Martin Müller" soll dann "Martin Meier" stehen!

Gefunden habe ich die Funktion replace(), aber ich kann diese nicht wirklich einsetzen, da ich eine Null in JavaScript bin, bitte beachtet das auch bei euren Antworten ;-)

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Struppi, 30. 06. 2005, 10:34

»» Jetzt möchte ich innerhalb des Scriptes etwas ersetzen, z.B. statt "Martin Müller" soll dann "Martin Meier" stehen!

etwas ersetzen ist ein bisschen zu wage um dir helfen zu können.

»»
»» Gefunden habe ich die Funktion replace(), aber ich kann diese nicht wirklich einsetzen, da ich eine Null in JavaScript bin, bitte beachtet das auch bei euren Antworten ;-)

willst du einen String ersetzen? Dann ist Replace eine gute Sache. Was hast du probiert und woran ist es gescheitert?


Struppi.
--
Javascript ist toll

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Vadym, 30. 06. 2005, 11:30

»» etwas ersetzen ist ein bisschen zu wage um dir helfen zu können.
Ich möchte folgendes machen "a href" mit "a target=\"_blank\" href" ersetzen.

»» Was hast du probiert und woran ist es gescheitert?
U.a. den Vorschlag von Steffen Weber, aber das klappte auch nicht...

Ich werde das jetzt wohl doch Serverseitig  lösen, PHP ist ja auch dabei.

Danke für eure Hilfe!

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Struppi, 30. 06. 2005, 11:40

»» »» etwas ersetzen ist ein bisschen zu wage um dir helfen zu können.
»» Ich möchte folgendes machen "a href" mit "a target=\"_blank\" href" ersetzen.

Du meinst so:
var string ="<a href=\"...\">text</A>";
var neu = string.replace( /a href/, 'a target=\"_blank\" href');
alert(neu);

»»
»» »» Was hast du probiert und woran ist es gescheitert?
»» U.a. den Vorschlag von Steffen Weber, aber das klappte auch nicht...

Natürlich klappt die Funktion.

Nur mal als Tipp, klappt nicht oder funzt nicht, sind Fehlerbeschreibungen die es niemanden ermöglichen irgendeine Hilfe zu geben. Nur mit Hilfe von einem bisschen Code ist jemand in der Lage deine Fehler zu zeigen. Des Hellsehen ist hier niemand mächtig.

»»
»» Ich werde das jetzt wohl doch Serverseitig  lösen, PHP ist ja auch dabei.

Naja, da ist die Funktion ja ähnlich.


Struppi.
--
Javascript ist toll

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Ashura, 30. 06. 2005, 11:42

>> puts "Hallo " + gets.chomp + "."
?> Struppi
=> Hallo Struppi.

»» Du meinst so:
»» var string ="<a href=\"...\">text</A>";
»» var neu = string.replace( /a href/, 'a target=\"_blank\" href');
»» alert(neu);


Da du schon '' verwendest, sind die \" überflüssig:

var neu = string.replace( /a href/, 'a target="_blank" href');


Einen schönen Donnerstag noch.

Gruß, Ashura

--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 20: search.ini
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Struppi, 30. 06. 2005, 11:46

»» Da du schon '' verwendest, sind die \" überflüssig:

vermutlich, sie waren einfach aus dem Orginalcode, aber evtl. will der OP sie im String haben?

Struppi.
--
Javascript ist toll

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Ashura, 30. 06. 2005, 11:49

>> puts "Hallo " + gets.chomp + "."
?> Struppi
=> Hallo Struppi.

»» »» Da du schon '' verwendest, sind die \" überflüssig:
»»
»» vermutlich, sie waren einfach aus dem Orginalcode, aber evtl. will der OP sie im String haben?

Ja, ist durchaus möglich.
(Falls er dies doch selbst nicht wissen sollte, ist meine Anmerkung doch hilfreich.)


Einen schönen Donnerstag noch.

Gruß, Ashura

--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 20: search.ini
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Steffen Weber, 30. 06. 2005, 11:54

Tag,

»» »» etwas ersetzen ist ein bisschen zu wage um dir helfen zu können.
»» Ich möchte folgendes machen "a href" mit "a target=\"_blank\" href" ersetzen.
»»
»» »» Was hast du probiert und woran ist es gescheitert?
»» U.a. den Vorschlag von Steffen Weber, aber das klappte auch nicht...

»» »» <DIV ID=x>
»» <script type="text/javascript" charset="UTF-8" src="http://www.***.de/tinc?key=script">
»» </DIV>
»» <script>
»» var d = document.getElementById("x");
»» d.innerHTML = d.innerHTML.replace("Martin Müller", "Martin Meier");
»» </script>
»»


Versuch mal folgendes. Eventuell hast Du ein Timingproblem. Bedenke auch, daß das hier benutzte Replace nur das erste Vorkommen der gesuchten Zeichenkette ersetzt.

<DIV ID=x>
<script type="text/javascript" charset="UTF-8" src="http://www.***.de/tinc?key=script">
</DIV>
<script>
function doIt() {
  var d = document.getElementById("x");
  alert(d.innerHTML);
  d.innerHTML = d.innerHTML.replace("Martin Müller", "Martin Meier");
}
setTimeout(doIt, 2000);
</script>



Grüße,
Steffen.

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Ashura, 30. 06. 2005, 11:59

>> puts "Hallo " + gets.chomp + "."
?> Steffen
=> Hallo Steffen.

»»   d.innerHTML = d.innerHTML.replace("Martin Müller", "Martin Meier");

Ihr beide solltet euch einmal anschauen, wie replace() eingesetzt wird.

Der erste Parameter muss ein regulärer Ausdruck sein, damit es funktionieren kann.


Einen schönen Donnerstag noch.

Gruß, Ashura

--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 20: search.ini
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Steffen Weber, 30. 06. 2005, 12:09

Tag,

»» >> puts "Hallo " + gets.chomp + "."
»» ?> Steffen
»» => Hallo Steffen.
»»
»» »»   d.innerHTML = d.innerHTML.replace("Martin Müller", "Martin Meier");
»»
»» Ihr beide solltet euch einmal anschauen, wie replace() eingesetzt wird.
»»
»» Der erste Parameter muss ein regulärer Ausdruck sein, damit es funktionieren kann.

Das ist so nicht richtig.
Ein String kann auch als regulärer Ausdruck interpretiert werden.
Ein ganz einfacher Test:
alert("abc".replace("a", "A"));
alert("abc".replace(new RegExp("a"), "A"));

Diese beiden Zeilen ergeben genau das Gleiche/Selbe.
Wenn ein String als erster Parameter in ein Replace übergeben wird, dann wird dieser String (wie oben) in eine nicht-globale und case-sensitive Regular Expression umgewandelt.

Grüße,
Steffen.

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Ashura, 30. 06. 2005, 12:17

>> puts "Hallo " + gets.chomp + "."
?> Steffen
=> Hallo Steffen.

»» Wenn ein String als erster Parameter in ein Replace übergeben wird, dann wird dieser String (wie oben) in eine nicht-globale und case-sensitive Regular Expression umgewandelt.

Tatsache, das kannte ich bisher nicht. Gibt es das irgendwo dokumentiert?
Alles was ich finden konnte, beschränkte sich auf die (regex, string)-Regel.


Einen schönen Donnerstag noch.

Gruß, Ashura

--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 20: search.ini
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Steffen Weber, 30. 06. 2005, 12:22

Tag,

»» >> puts "Hallo " + gets.chomp + "."
»» ?> Steffen
»» => Hallo Steffen.
»»
»» »» Wenn ein String als erster Parameter in ein Replace übergeben wird, dann wird dieser String (wie oben) in eine nicht-globale und case-sensitive Regular Expression umgewandelt.
»»
»» Tatsache, das kannte ich bisher nicht. Gibt es das irgendwo dokumentiert?
»» Alles was ich finden konnte, beschränkte sich auf die (regex, string)-Regel.

Ich könnte leider auch nichts finden, aber ich wende es schon seit Jahren auf beide Arten an. Ich nehme einfach an, daß das mit der Untypisiertheit von JS zusammenhängt. Wenn JS einen Parameter von einem bestimmten Typ erwartet und dieser das nicht ist, dann wird versucht den Parameter in den gewünschten Typ umzuwandeln.

Grüße,
Steffen.

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Ashura, 30. 06. 2005, 12:27

>> puts "Hallo " + gets.chomp + "."
?> Steffen
=> Hallo Steffen.

»» Ich könnte leider auch nichts finden, aber ich wende es schon seit Jahren auf beide Arten an.

Da bist du anscheinend nicht der Einzige.

»» Ich nehme einfach an, daß das mit der Untypisiertheit von JS zusammenhängt. Wenn JS einen Parameter von einem bestimmten Typ erwartet und dieser das nicht ist, dann wird versucht den Parameter in den gewünschten Typ umzuwandeln.

Trifft auf JS zu, ja. Danke für die Information.


Einen schönen Donnerstag noch.

Gruß, Ashura

--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 20: search.ini
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Ashura, 01. 07. 2005, 11:37

>> puts "Hallo " + gets.chomp + "."
?> Steffen
=> Hallo Steffen.

»» Ich könnte leider auch nichts finden, aber ich wende es schon seit Jahren auf beide Arten an.

Noch einmal vielen herzlichen Dank für diesen Tipp.
Damit konnte ich mehrere ifs mit RegExen durch eine Schleife und einem einfachen Array ersetzen.


Einen schönen Freitag noch.

Gruß, Ashura

--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 20: search.ini
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Steffen Weber, 01. 07. 2005, 11:58

Tag,

»» >> puts "Hallo " + gets.chomp + "."
»» ?> Steffen
»» => Hallo Steffen.
»»
»» »» Ich könnte leider auch nichts finden, aber ich wende es schon seit Jahren auf beide Arten an.
»»
»» Noch einmal vielen herzlichen Dank für diesen Tipp.
»» Damit konnte ich mehrere ifs mit RegExen durch eine Schleife und einem einfachen Array ersetzen.

Natürlich hat man mit RegExp viel mehr Möglichkeiten.
Sowas geht natürlich auch ...
var str = "irgendwas";
var regs = [/i/g, "I", /a/g, "A", /w/g, "W"];
for (var i = 0; i < regs.length; i += 2) {
  str = str.replace(regs[i], regs[i + 1]);
}
alert(str);


RegExp's sind genial!

Grüße,
Steffen.

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Ashura, 01. 07. 2005, 12:01

>> puts "Hallo " + gets.chomp + "."
?> Steffen
=> Hallo Steffen.

»» Natürlich hat man mit RegExp viel mehr Möglichkeiten.

Ich weiß. Sie sind eines der mächtigsten Werkzeuge des guten Programmierers. :-)

»» Sowas geht natürlich auch ...
»» [...]

Wenn ich Strings verwenden kann, tue ich es auch. Ich finde das performanter.

»» RegExp's sind genial!

Wenn man die Schwelle des Verständnisses überschritten hat, ja. Davor wirken sie wie Zeichensalat. ;-)


Einen schönen Freitag noch.

Gruß, Ashura

--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 20: search.ini
Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Cybaer, 30. 06. 2005, 12:24

Hi,

»» »» etwas ersetzen ist ein bisschen zu wage um dir helfen zu können.
»» Ich möchte folgendes machen "a href" mit "a target=\"_blank\" href" ersetzen.

Neben der PHP-Variante: Bei DHTML kann man einfach mit JS alle Links des *Dokumentes* durchgehen und das Target dynamisch nach Belieben ändern.


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

nach obennach unten

Dynamisches Ändern eines JavaScripts

Die folgende Nachricht zum Thema stammt von: Steffen Weber, 30. 06. 2005, 10:58

Tag,

»» Folgendes Problem:
»» Von meinem Provider bekomme ich ein JavaScript zu Verfügung gestellt, dabei wird dieser so in meine Seite eingebunden: <script type="text/javascript" charset="UTF-8" src="http://www.***.de/tinc?key=script">.
»» Intern sieht dieser JavaScript so aus: "document.writeln('<div style...........)".
»»
»» Jetzt möchte ich innerhalb des Scriptes etwas ersetzen, z.B. statt "Martin Müller" soll dann "Martin Meier" stehen!

naja, wenn Du es halbwegs sauber machen willst, dann müßtest Du das Script serverseitig bearbeiten und dann selber an den Client schicken. Dafür brauchst Du keine JS-Kenntnisse. Du brauchst aber die Möglichkeit serverseitig zu programmieren. (PHP, Perl, ...)

Clientseitig könntest Du z.B. das Script innerhalb eines DIV's einbinden und dann das innerHTML des DIV's bearbeiten.

<DIV ID=x>
<script type="text/javascript" charset="UTF-8" src="http://www.***.de/tinc?key=script">
</DIV>
<script>
var d = document.getElementById("x");
d.innerHTML = d.innerHTML.replace("Martin Müller", "Martin Meier");
</script>


Grüße,
Steffen.

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2005 Teil von Juni

© 1998-2006 Seite Impressum, Software: Classic Forum