Getting name of clicked object in OnClick handler

Sander Tacker shared this question 4 months ago
Answered

I have some dynamically created polygons that all shall react to a click in similar ways.


In the OnClick -Script of each polygon, I pass the name of the clicked polygon to a variable and call the OnClick-Script of an invisible DummyButton that executes my actual code (depending on the name of the clicked polygon).


All polygons have the following GeoGebra-Script as OnClick-Script:


NameOfClickedObject = Name(%0)
SkriptBeiMausklickAusführen(DummyButton) 
// english: RunClickScript(DummyButton)


This works pretty well until the construction gets updated. Then all these scripts are automatically changed to

NameOfClickedObject = Name(% 0)
SkriptBeiMausklickAusfü hren(DummyButton)

with an extra space in each line (after % and after the german ü). This results in two error messages because both lines can't be parsed anymore.


Now my questions:

1. This seems to be a bug in GeoGebra. Could someone please add it to the bugs list?

2. I tried to do a work around by writing a Javascript instead of a GeoGebra-Script because there I can use the englisch command "RunClickScript" without german ü. But is there a way to use the placeholder %0 in Javascript?


Alex

Comments (8)

photo
1

Here is an example file that demonstrates the bug.


Alex

photo
1

Ich kann den Bug in folgender Umgebung nicht rekonstruieren:

Win10, chrome, Tastatur: Deutsch/Schweiz

GGB-5.0.581

GGB-6.0.581 WEB

Das File habe ich sowohl in GGB-German als auch GGB-Englisch geöffnet.

Es läuft auch bei Klick auf die Vielecke richtig ab (alert aus JS)

-----------------------

Potentieller Workaround: GGB auf Englisch umschalten, App öffnen, App speichern.

Kontrolliere auch die Tastaturbelegung (in Windows unten rechts)

Möglicherweise ist das Leerzeich (vermutlich ein Spezialzeichen) durch einen externen Editor eingeschleppt worden. Im XML-File im Abschnitt Script für die Vielecke erscheinen (mir) unbekannte Spezialzeichen-Folgen (&#xa es könnte newline bedeuten).

------------------------

Falls der Workaround nicht oder nur teilweise erfolgreich ist:

Melde auch die Parameter Deiner Umgebung.

photo
1

Ich verwende GeoGebra Classic 5.0.581.0-d mit Java: 1.8.0_161 unter Windows 10, Tastatur Deusch - reicht das als Systeminformation?


Ich habe deine Tipps befolgt, aber der Fehler tritt bei mir reproduzierbar weiterhin auf:

- Wenn ich die Sprache in GeoGebra auf Englisch umstelle, wird zwar das Problem mit dem deutschen Buchstaben "ü" verhindert (weil der Befehl auf Englisch kein "ü" hat), aber der Placeholder %0 wird weiterhin getrennt zu % 0.

- Beim Umstellen der Tastaturbelegung auf DE oder EN tritt der Fehler weiter auf.


- Ich habe das Skript noch einmal zeichenweise per Hand neu eingegeben, aber der Fehler tritt weiter auf.


Der Fehler lässt sich nur reproduzieren, wenn du genau den Schritten folgst, die ich in der ggb-Datei beschrieben habe. Im Screenshot habe ich die Schritte nochmal verdeutlicht. Ich hoffe, du kannst den Bug so auch bei dir reproduzieren.

Alex


5f185d5120c56db82e1fd20e72b24b5a

photo
1

Yes, confirming the bug.

Whenever the script editor with JS setting is displayed, an opening of another object with GGB script setting will cause errors with special characters.

photo
1

@rami: thanks! What do you mean by "special characters"?


Edit: Oh, like "ü"?

photo
1

"Special" characters with bug: # ä ö ü % & ç @ ¬ | ¦ (and possibly more.)

(but not in sequence, but separated by a "normal" character like X)

tested in GGB-5.0.581 with X# Xä Xö Xü X % X & Xç X@ X¬ X | X¦ X (test input without spaces). The characters %&| has a space left and right.

photo
1

Thanks, got it!

photo
1

Fixed for next release (v589)

© 2020 International GeoGebra Institute