• Resolved fneumeier

    (@fneumeier)


    Ich habe ein seltsames Phänomen, zu dem ich keine Lösung finde: Bei Klick auf einen der Share-Button öffnet sich erwartungsgemäß das Popup-Fenster, zugleich lädt der Inhalt des Popup-Fensters aber auch noch mal im ursprünglichen Browser-Fenster. Beispiel hier: http://www.cruisetricks.de/ms-deutschland-wird-an-us-unternehmen-verkauft/

    Dies passiert bei Facebook, Twitter, Google+, nicht aber bei Xing. Den einzigen Unterschied, den ich dabei feststellen kann ist, dass der Link zu Xing mit //www.xing.com relativ referenziert ist, die Links zu den anderen drei Diensten jedoch mit https://www.facebook.com etc.

    Irgendeine Idee, wie sich das beheben lässt? Bzw. spricht etwas dagegen, im Plugin-Code generell alle URLs mit relativem Protokoll, also mit // statt https:// zu referenzieren?

    Danke!
    Franz

    https://wordpress.org/plugins/shariff/

Viewing 12 replies - 1 through 12 (of 12 total)
  • Plugin Author Jan-Peter

    (@starguide)

    Hallo,

    da kommen sich die multiplen jQuery-Versionen ins Gehege. Wenn ich die http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js blockiere, funktioniert es einwandfrei.

    Wir wollten da eh noch etwas umstellen, eventuell erledigt es sich mit der nächsten Version, anderenfalls müsste man mal schauen, welches andere Plugin da die jquery.min.js über Google einbindet (anstatt die hauseigene Version von WordPress zu nehmen).

    Viele Grüße,
    starguide

    Thread Starter fneumeier

    (@fneumeier)

    Danke, starguide!

    Ich habe jetzt mal intensiver mit Plugins in mehreren verschiedenen WordPress–Installationen getestet und der Zusammenhang mit http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js ist offensichtlich. Das Problem ist nur: Es gibt anscheinend zahlreiche Plugins, die diese jQuery-Version benutzen. Ich habe allein fünf in meinen verschiedenen Installationen gefunden, darunter z.B. auch das recht verbreitete cforms2. (weitere, die ich identifiziert habe, sind: ICS Calendar, UberMenu2, WP-Slimbox, Scoll Triggered Box)

    Auch wenn’s ein Workaround um das eigentliche Problem (=überflüssiges Laden mehrere jQuery-Versionen) ist, löst die Referenzierung mit relativem Protokoll das Symptom zumindest in meinen Tests zuverlässig. Wäre also vielleicht eine Überlegung wert, zumindest vorübergehend das auf relativ umzustellen, denn ich gehe mal davon aus, dass durch die offenbar große Verbreitung von jQuery 1.11.1 in Plugin viele dieses Problem haben werden …

    Herzliche Grüße
    Franz

    Thread Starter fneumeier

    (@fneumeier)

    Nach weiteren Recherchen nochmal etwas tiefer gebohrt: jQuery 1.11.1 ist die Standard-Version von WordPress, die geladen wird, sobald ein Plugin oder ein Theme jQuery nach der von WordPress präferierten Methode mit wp_enqueue_script() einbindet. Die zu blockieren macht also nicht wirklich Sinn. Die im vorigen Kommentar genannten Plugins lösen also lediglich das Laden der Standard-jQuery-Version von WordPress aus und sind damit wohl nicht die Auslöser des beschriebenen Problems.

    Allerdings: Mein Problem tritt beispielsweise nicht im WordPress-Theme twentyfifteen auf — also liegt die Wurzel des Übels wohl in meinem Theme, auch wenn ich nicht ansatzweise eine Ahnung habe, wo das Problem da liegen könnte. Aber das ist natürlich erstmal nicht das Problem des Shariff-Plugins 😉

    Für weitere Tipps wäre ich trotzdem dankbar, falls jemand welche hat …

    Herzliche Grüße
    Franz

    Plugin Author Jan-Peter

    (@starguide)

    Hallo Franz,

    ich bin zuversichtlich, dass sich mit der nächsten Version dein Problem lösen könnte. Daher würde ich für den Moment sagen: Warten wir die mal ab und dann schauen wir weiter, ob und was dann noch zu tun wäre.

    Viele Grüße,
    starguide

    Thread Starter fneumeier

    (@fneumeier)

    Klingt gut. ich behelfe mich derweil damit, dass ich die entsprechenden Links im Skript auf relativ ändere 🙂

    Danke übrigend bei der Gelegenheit für Eure gute Arbeit an diesem Plugin!

    Herzliche Grüße
    Franz

    Plugin Author 3UU

    (@3uu)

    Version 1.8 verwendet jetzt standardmaessig die WP-eigene jQuery, was hoffentlich Dein Problem loest. Und nebenbei auch noch den JS-code von Shariff um etwa 80% verkleinert 🙂

    Ausserdem ist mir durch Deinen Hinweis auf Xing aufgefallen, dass mehrere Services mit relativen network-path declariert sind. Das macht ja nun ueberhaupt keinen Sinn, wenn der referenzierte Inhalt eh in einem eigenen Popup erscheint. Mir faellt zumindest kein Grund ein, warum man eine gesicherte Verbindung zu einem Service auf http umstellen sollte, nur weil die zu sharende Website just zufaellig ueber eine unverschluesselte Verbindung betrachtet wird. Oder uebersehe ich was? Umbau ist jedenfalls fuers naechste minor Fix schonmal vorgesehen.

    Thread Starter fneumeier

    (@fneumeier)

    Klasse, allein schon wegen der Code-Reduzierung 🙂

    Löst mein Problem leider nicht – aber wie gesagt vermute ich die Ursache inzwischen eh’ in meinem Theme; wahrscheinlich geht das irgendwo unsauber mit jQuery um und verursacht einen Konflikt.

    Was die Protokoll-relative Verlinkung angeht, stimme ich Dir zu; für externe Links ist das eigentlich nicht gedacht und irgendwie auch sinnlos. Mir ist nur durch den Xing-Link aufgefallen, dass das relative Protokoll einen funktionierenden Workaround für mein noch nicht identifiziertes Problem darstellt. Warum auch immer ras relative Protokoll dazu führt, dass mein Problem damit nicht auftritt …. Ich werde das jetzt erstmal weiter so anpassen, bis ich den eigentlichen Fehler gefunden habe.

    Herzliche Grüße
    Franz

    Thread Starter fneumeier

    (@fneumeier)

    Fehler gefunden – hilft vielleicht anderen, die auf ein ähnliches Problem stoßen.

    Schuld war ein Event-Tracker für Google Analytics, der Outbound-Links trackt und dementsprechend bei Klicks auf “http”-Elemente anspringt (bei relativem Protokoll fehlt das “http”, sodass der Tracker hier nicht reagiert und damit das Problem nicht auftritt):

    $(document).on('click', 'a[href^=http]', function(e){...CODE...}

    Ersetzt durch anderen (ohnehin besseren) Tracker und alles ist gut.

    Nochmal Danke für Eure Hilfe!
    Franz

    Plugin Author Jan-Peter

    (@starguide)

    Ah, na darauf muss man erst einmal kommen.

    Danke für die Info. Immer gut, wenn man Rückmeldungen bekommt, woran es gelegen hat!

    Viele Grüße,
    starguide

    Plugin Author 3UU

    (@3uu)

    Schoen, dass es jetzt klappt.

    Vielleicht magst Du uns ja einen kleinen Review unter https://wordpress.org/support/view/plugin-reviews/shariff?filter=5 geben?

    Ansonsten waere nett, wenn Du uns noch das Plugin sagst, welches das Problem verursacht hat. Ich weiss noch nicht, ob ich eine Liste mit inkompatiblen Plugins in die FAQ haue. Vielleicht auch gleich mit der Alternative. Ich fuerchte naemlich, die meisten Anwender wissen weder, was $(document), noch wuerden sie es finden 🙂

    Aber zumindest fuer den “internen” Gebrauch beim Support ware es hilfreich.

    Thread Starter fneumeier

    (@fneumeier)

    Es war kein Plugin, sondern eine Javascript-Codezeile im Tracking-Code für Google Analytics in meinem Theme (in der header.php). Die Methode, die ich dabei eingesetzt hatte, um Klicks auf ausgehende Links zu tracken, ist inzwischen veraltet und wird von Google Analytics ach nicht mehr empfohlen – aber wie’s halt so ist mit Code, den man einmal einbaut und dann vergisst …

    Theoretisch könnte das Problem also mit Google-Analytics-Plugins auftreten, falls selbige noch diese alte Methode einsetzen; halte ich aber für recht unwahrscheinlich.

    Plugin Author 3UU

    (@3uu)

    Ah, okay, verstehe. Danke fuers Feedback!

Viewing 12 replies - 1 through 12 (of 12 total)
  • The topic ‘Inhalt des Share-Fensters lädt doppelt’ is closed to new replies.