Javascript und Begrenzer

Xb2.Net von Boris Borzic

Moderator: Moderatoren

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

Javascript und Begrenzer

Beitrag von Rudolf » Mi, 26. Apr 2017 10:25

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: 14530
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Martin Altmann » Mi, 26. Apr 2017 10:36

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
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14587
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von brandelh » Mi, 26. Apr 2017 11:03

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: 1413
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf » Mi, 26. Apr 2017 11:09

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: 14587
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von brandelh » Mi, 26. Apr 2017 11:18

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: 1413
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf » Mi, 26. Apr 2017 12:00

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: 14587
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von brandelh » Mi, 26. Apr 2017 13:42

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: 1413
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf » Mi, 26. Apr 2017 14:10

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: 373
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Armin » Di, 02. Mai 2017 9:43

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: 1413
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf » Di, 02. Mai 2017 10:40

Hallo Armin,
danke, genau das habe ich gesucht.
Hat onclick() Vorteile ?
Grüße
Rudolf

Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 373
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Armin » Di, 02. Mai 2017 13:33

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: 1413
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Javascript und Begrenzer

Beitrag von Rudolf » Di, 02. Mai 2017 14:03

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