Um genauer zu sein, muss ich wissen, ob (und wenn möglich, wie) ich herausfinden kann, ob eine gegebene Zeichenkette Doppelbyte-Zeichen enthält oder nicht. Im Grunde muss ich ein Popup-Fenster öffnen, um einen bestimmten Text anzuzeigen, der Doppelbyte-Zeichen enthalten kann, wie z. B. Chinesisch oder Japanisch. In diesem Fall müssen wir die Fenstergröße anpassen, als es für Englisch oder ASCII der Fall wäre. Hat jemand einen Tipp?
So etwas sollte in nicht-pathologischen Fällen funktionieren; natürlich müssen Sie sicherstellen, dass Sie den verfügbaren Platz auf dem Bildschirm nicht überschreiten, oder zumindest von vernünftigen Grenzen ausgehen.
0 Stimmen
Nun, ich hatte erwartet, dass das funktioniert. Aber es funktionierte nicht im IE. Ich vermute, dass es Layout-Probleme gibt. Wie auch immer, da der Code zum Berechnen der Länge und Höhe/Breite des anzuzeigenden Textes bereits vorhanden war, ging ich mit dem Code weiter, der nur herausfindet, ob ein Doppelbyte-Zeichen vorhanden ist oder nicht. Und das war die Lösung.
0 Stimmen
Mit HTML5 können Sie den Kontext eines Canvas-Elements (
var ctx = canvas.getContext('2d')
), um die Breite der Textmetrik zu erhalten.var text_width = ctx.measureText(text).width;
Ich bin nicht sicher, wie gut diese Methode mit Unicode-Zeichen funktioniert, und es ist eine Schande, dass allemeasureText
Methode gibt derzeit die Breite zurück.