Javascriptfehler iOS 10.3 Beta / Safari Technology Preview

Begonnen von Weisswurstverkäufer, 31 Januar 2017, 11:49:09

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Ich habe keine Lust/Zeit Betas zu installieren, und keiner mit einem Beta hat einen sinnvollen Patch erstellt.
Irgendwie fuehle ich mich genoetigt. Hoffentlich ist das ein falscher Eindruck.

justme1968

#16
das gleiche problem tritt auch bei bei den mac os betas auf und wird dann in den nächsten tagen/wochen mac os 10.12.4 betreffen.

ich vermute es liegt daran das die svgs asynchron geladen werden und in document ready zwar das svg object schon da ist aber der dom baum der dazu gehört noch nicht.

die saubere lösung wäre für jedes embed objekt einen onLoad event handler zu installieren und dort dann alles weitere zu machen. das würde dann auch die retry schleife überflüssig machen.

die quick&dirty lösung bei bestehender retry schleife ist den dom fehler mit einem try/catch abzufangen und sich auf das retry zu verlassen. etwa so:Index: fhemweb.js
===================================================================
--- fhemweb.js (revision 13811)
+++ fhemweb.js (working copy)
@@ -1584,6 +1584,10 @@
   if(emb.contentDocument)
     return emb.contentDocument;
   if(typeof emb.getSVGDocument == "function")
-    return emb.getSVGDocument();
+    try {
+      return emb.getSVGDocument();
+ } catch(err) {
+   // dom not loaded -> fall through -> retry;
+ }
   return undefined;
}


ps: zum testen müsste es in diesem fallreichen die safari technology preview version zu installieren https://developer.apple.com/safari/technology-preview/. das geht ganz ohne beta software parallel zur normalen safari version.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig


irenaeusbecker

Hi,

altes Thema, tritt aber leider immer noch auf...
Müsste das nicht seit dem Patch erledigt sein? Oder muss ich noch was konfigurieren?

Danke!