Überlaufende Texte finden

Eine bessere Übersetzung Umschreibung für text-overflow ist mir nicht eingefallen 🙃

In jQuery ginge das so:

Cross-post; basiert auf den Antworten hier. Bonus: In Selenium geht das so:

bäm.

Javascript: “Pull to refresh”

Pull-to-refresh in (mobilen!) Webseiten nachzubauen, ist jetzt keine Raketenwissenschaft, aber doch so viel Aufwand, dass sich ggf. eine Library lohnt. Viele (? einige? apeatling, ember-gestures, …) bauen aber auf hammer auf, und das hat einen Bug (Beispiel, es gibt weitere Tickets) im Zusammenspiel von Panning (also dem “Pull” in “Pull-to-refresh”) und Scrolling. Zusammengefasst: Es geht nur eines von beiden. Mit ein wenig Drumherumgehacke bekommt man das etwas näher zusammengeführt, aber entweder kommt PanEnd dann gar nicht (was das “refresh” schwierig macht), oder bspw. die PanMove-Events kommen nicht zuverlässig (wodurch man den “pull” nicht 1:1 an den Finger des Nutzers hängen kann).

Ein npm-Modul, das nicht auf hammer aufbaut, wäre pulltorefreshjs (getestet mit 0.1.11 und 0.1.13):

In Ember sieht das als Komponente so aus:

Auf dem Handy sollte das so schon funktionieren. Auf dem Desktop hatte ich das Phänomen, dass Hochcrollen immer erst beim zweiten mal funktioniert hat (und auch dann nur, wenn zwischen Versuch 1 und 2 nicht zu viel Zeit lag). Weil: Die Lib immer beim Hochscrollen den Loader anzeigt, wenn man die Funktion shouldPullToRefresh nicht vom default !window.scrollY ummapt, bspw. auf

Hochscrollen geht sonst nur, so lange der Loader angezeigt wird 🙃

AdBlock: Block inline scripts

Es gibt diese fantastischen Seiten, die einen im wenige-Sekunden-Takt mit JS-Alerts beglücken:

Wenn man das schuldige Skript kennt (auf unübersichtlichen Seiten so zu finden), dann kann uBlock Origin das sogar dann blocken, wenn es ein inline Skript ist:

HTH

PS, Fun Fact am Rande: Obiger Alert kam sogar für Edge 😄

Ember.js: Helper erweitern

Angenommen, ich habe eine Ember-Anwendung mit Zielplattform Handy. Dann möchte ich zentral an einer Stelle für alle Inputfelder Autokorrektur usw. deaktivieren:

Mit, und.

Ember.js: Vererbung in Routen

Angenommen, ich möchte ein default Verhalten auf viele Routen vererben, bsplw. das Handling von 403ern:

Und dann in irgendeiner Route:

Grundsätzlich kommt das von hier, ergänzt um die konkrete Implementierung des Error Handlings. Das findet sich hier in der Doku, wobei error.status nicht funktioniert, es muss result.errors[0].status sein.

JS: navigator.language im Chrome

Chrome ist der neue Internet Explorer:

Stellt sich raus: navigator.language ist im Chrome die Sprache des UI, nichtAccept-Language” m(

navigator.languages funktioniert dafür auch im FF und liefert alle akzeptierten Sprachen.

AngularJS 1.2.14 (ff): $scope.$watchCollection

$watchCollection würde man intuitiv so verwenden (Quelle):

Das funktioniert aber nicht. Korrekt wäre ein großer String (Quelle):

Darüber hinaus gibt es einen Bug in v1.2.14 (und in gewissen Szenarien auch darüber hinaus), bei dem newValues[i] immer gleich oldValues[i] ist. Der Fix dafür hat aber ebenfalls einen Bug: Die Dependecies werden nicht korrekt injected. Folgende Änderungen waren nötig:

Ein Pull Request ist nicht möglich, aber vllt zieht sich der Autor das auf meinen Kommentar hin.

Schlussendlich: Nicht vergessen, die Decorators in die App zu injecten:

Apache Ant: Ja/nein-Dialog

Apache kennt von haus aus nur Input Dialoge (korrigiert mich), und damit kann man natürlich “j”/”n”-Eingaben bauen (siehe Examples).  Schöner ist aber ein richtiger Ja/Nein-Dialog, wie Javascripts confirm. Außerdem gibt es if/else nur mit Ant contrib, das nicht zwingend überall installiert ist. Bitte nennt mir eine schönere Lösung als die folgende, aber damit geht’s – Confirm-Dialoge und if/else-Verzweigung abhängig von der User-Eingabe:

Die Targets “setURLs” und “setURLsAndProxy” werden nur abhängig von ${useProxy} ausgeführt, bzw nicht ausgeführt (if/unless).