Javascript und Begrenzer

Xb2.Net von Boris Borzic

Moderator: Moderatoren

Antworten
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Javascript und Begrenzer

Beitrag von Rudolf »

Hallo,
habe das Problem dass ich einen String in Javascript zusammenstellen muss der beide Arten von Anführungszeichen und teilweise Klammern hat. Das funktioniert dann nicht wenn ich den String in Anführungszeichen setze. Wie kann ich den String mit Begrenzern ins href Tag setzen ?
Grüße
Rudolf

Code: Alles auswählen

<a href="javascript:CallFormWin('1*3675587','Kundendaten bearbeiten','DCHTMLBROWSEEDITB','1','EDIT',500,350,'DBBROWSE1');"><span class="mif-pencil"></span></a>
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Martin Altmann »

Arbeite doch mit TEXT TO/ENDTEXT
Oder nimm chr(34) für den "

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von brandelh »

Ich denke er meint IN JavaScript, nicht in Xbase++ ...

Hast du mal versucht HTML Zeichen für die Spezialzeichen im String zu verwenden ?
Oder den HEX Code %20 für Blank, %22 für " ("), %27 für ' (&apos; - wobei nur bei XHTML ?)
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf »

Hallo Martin,
es ist ein Javascript Problem, mit Xbase++ wüsste ich mir zu helfen. Der u.a. Code z.B. hat verschiedene Anführungszeichen, aber ich kann keine [] Klammern wie in Xbase++ verwenden.
Grüße
Rudolf

Code: Alles auswählen

 new.cells[6].innerHTML='<a href="javascript:CallFormWin('1*3675587','Kundendaten bearbeiten','DCHTMLBROWSEEDITB','1','EDIT',500,350,'DBBROWSE1');"><span class="mif-pencil"></span></a>';
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von brandelh »

Hast du mal versucht HTML Zeichen für die Spezialzeichen im String zu verwenden ?
Oder den HEX Code %20 für Blank, %22 für " ("), %27 für ' (&apos; - wobei nur bei XHTML ?)

Ich mein das so ...

Code: Alles auswählen

 new.cells[6].innerHTML='<a href="javascript:CallFormWin('1*3675587','Kundendaten "Maier" bearbeiten','DCHTMLBROWSEEDITB','1','EDIT',500,350,'DBBROWSE1');"><span class="mif-pencil"></span></a>';
oder
[code] new.cells[6].innerHTML='<a href="javascript:CallFormWin('1*3675587','Kundendaten %27Maier%27 bearbeiten','DCHTMLBROWSEEDITB','1','EDIT',500,350,'DBBROWSE1');"><span class="mif-pencil"></span></a>';
mit XHTML soll es das einfache Anführungszeichen so geben, eventuell auch bei modernem HTML:

Code: Alles auswählen

 new.cells[6].innerHTML='<a href="javascript:CallFormWin('1*3675587','Kundendaten &apos;Maier&apos; bearbeiten','DCHTMLBROWSEEDITB','1','EDIT',500,350,'DBBROWSE1');"><span class="mif-pencil"></span></a>';
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf »

Hallo Hubert,
aber da habe ich am Beginn ein Anführungszeichen welches sich im String dann wiederfindet, das kann nicht funktioneren. Habe schon alles versucht, da muss es eine andere Lösung geben. Hier der vereinfachte String:

Code: Alles auswählen

 tmp.cells[6].innerHTML = ???<a href="javascript:alert('test')???;
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von brandelh »

Sorry ich bin kein JavaScript Experte. Ich meinte nur zu wissen, dass die Funktionen das in den ' ' direkt an den HTML Browser als HTML Text übergeben und dachte dass es so geht.

Die ??? sollen für den benötigten Begrenzer stehen (bei Xbase++ z.B. ein [ ] ?

Dann wäre das also reines Javascript ?

Dann hatte ich dein Problem falsch verstanden, aber sowas müsste doch im Web zu finden sein :?

Suchbegriff: .innerHTML <a href="javascript:alert(

http://stackoverflow.com/questions/3509 ... e-the-href

https://www.w3schools.com/jsref/prop_html_innerhtml.asp

weiter unten kommt das Beispiel:

Code: Alles auswählen

document.getElementById("myAnchor").innerHTML = "W3Schools";
document.getElementById("myAnchor").href = "https://www.w3schools.com";
document.getElementById("myAnchor").target = "_blank";
ausführlicher ...

Code: Alles auswählen

<!DOCTYPE html>
<html>
<body>
 
<a id="myAnchor" href="http://www.microsoft.com">Microsoft</a>
<button onclick="myFunction()">Change link</button>
 
<script>
function myFunction() {
    document.getElementById("myAnchor").innerHTML = "W3Schools";
    document.getElementById("myAnchor").href = "https://www.w3schools.com";
    document.getElementById("myAnchor").target = "_blank";
}
</script>

</body>
</html>

so wie ich das verstehe spalten die das auf in die Texte und die Eigenschaft HREF und sparen sich somit die Mischung der Stringbegrenzer
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf »

Hallo Hubert,
Danke, Dein Tip ist interessant, aber bei mir geht er nicht, weiß nicht wie ich die Funktion als href angeben kann. Aber ich mit dieser Lösung geht es:

Code: Alles auswählen

 
var ref = '<a href="' + "javascript:CallFormWin('1*3675587','Kundendaten bearbeiten','DCHTMLBROWSEEDITB','1','EDIT',500,350,'DBBROWSE1');" + '"><span class="mif-cancel"></span></a>'
tmp = table.appendChild( new_row );
tmp.id = 'rowid_dbbrowse1_31';
tmp.cells[6].innerHTML = ref;
Mich wundert nur dass es keine einfachere Lösung gibt, wie die Klammern in Xbase++, aber Hauptsache es funktioniert.
Grüße
Rudolf
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 389
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Armin »

Hallo Rudolf,

innerhalb eines Strings:
\" ergibt die doppelten Anführungszeichen
\'
\\ ergibt einen Backslash
\n Zeilenumbruch
\t Tab

https://wiki.selfhtml.org/wiki/JavaScript/Steuerzeichen

Aber schöner ungefähr so:
elem = document.createElement('a');
elem.setAttribute("href","...");
tmp.cells[6].appendChild(elem);

Ich würde wahrscheinlich onclick() verwenden.


Grüße, Armin
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf »

Hallo Armin,
danke, genau das habe ich gesucht.
Hat onclick() Vorteile ?
Grüße
Rudolf
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 389
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Armin »

Hallo Rudolf,
Hat onclick() Vorteile ?
Das Problem beim href kann sein, dass er nach dem Ausführen der Javascriptfunktion einen SUBMIT auslöst, obwohl Du es nicht willst. Wenn man das nicht will, muss man false zurückgeben (return false;).
Um trotzdem einen a-Tag verwenden zu können, schreibt man dann z.B. in href="#" onclick="machediesunddas();"

Grüße, Armin
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf »

Hallo Armin,
das mit dem Submit hab ich mit dem return false gelöst, aber stimmt, onclick() ist einfacher, werde meinen Code umstellen.
Grüße
Rudolf
Antworten