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
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
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
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
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.
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
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
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.
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!