Seite 1 von 1

Javascript und Begrenzer

Verfasst: Mi, 26. Apr 2017 10:25
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>

Re: Javascript und Begrenzer

Verfasst: Mi, 26. Apr 2017 10:36
von Martin Altmann
Arbeite doch mit TEXT TO/ENDTEXT
Oder nimm chr(34) für den "

Viele Grüße,
Martin

Re: Javascript und Begrenzer

Verfasst: Mi, 26. Apr 2017 11:03
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 ?)

Re: Javascript und Begrenzer

Verfasst: Mi, 26. Apr 2017 11:09
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>';

Re: Javascript und Begrenzer

Verfasst: Mi, 26. Apr 2017 11:18
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>';

Re: Javascript und Begrenzer

Verfasst: Mi, 26. Apr 2017 12:00
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

Re: Javascript und Begrenzer

Verfasst: Mi, 26. Apr 2017 13:42
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

Re: Javascript und Begrenzer

Verfasst: Mi, 26. Apr 2017 14:10
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

Re: Javascript und Begrenzer

Verfasst: Di, 02. Mai 2017 9:43
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

Re: Javascript und Begrenzer

Verfasst: Di, 02. Mai 2017 10:40
von Rudolf
Hallo Armin,
danke, genau das habe ich gesucht.
Hat onclick() Vorteile ?
Grüße
Rudolf

Re: Javascript und Begrenzer

Verfasst: Di, 02. Mai 2017 13:33
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

Re: Javascript und Begrenzer

Verfasst: Di, 02. Mai 2017 14:03
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