#630 closed Aufgabe (fixed)
jQuery tpl_modified
| Reported by: | Ronald Parcinski | Owned by: | Gerhard Waldemair |
|---|---|---|---|
| Priority: | hoch | Milestone: | modified-shop-2.0.5.0 |
| Component: | Template | Version: | 2.0.1.0 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
jquery-1.8.3.min.js sollte im Head geladen werden.
Ansonsten können keine jQuery Scripte in den Template Dateien eingebunden werden.
Z.B Attribut Price Updater/Flächenberechner usw.
Diese Scripte sind in der Regel direkt in der Options Templatevorlage eingebunden.
Attachments (0)
Change History (17)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Das sehe ich genau wie Markus. Das hat im Head nichts zu suchen. Das straft Google direkt ordentlich ab!
comment:3 by , 10 years ago
Da bin ich ebenfalls dageben - wenn irgendwie möglich sollte es dringend vermieden werden!
comment:5 by , 10 years ago
Replying to web28:
[...]
Ansonsten können keine jQuery Scripte in den Template Dateien eingebunden werden.
Z.B Attribut Price Updater/Flächenberechner usw.
Diese Scripte sind in der Regel direkt in der Options Templatevorlage eingebunden.
Da gehören sie aber doch nicht hin.
Wenn die general.js.php in der application_bottom.php eingebunden ist kann man dort alles an JS einbauen was benötigt wird, auch konditional nur für bestimmte Seiten, wie bislang auch.
Zu Testzwecken kann man die jQuery-Basis jederzeit kurzfristig auskommentieren und in die header.php schreiben.
Gruß,
noRiddle
follow-up: 13 comment:6 by , 10 years ago
Zitat:
"Da gehören sie aber doch nicht hin.
Wenn die general.js.php in der application_bottom.php eingebunden ist kann man dort alles an JS einbauen was benötigt wird, auch konditional nur für bestimmte Seiten, wie bislang auch."
Da bitte dann ich um einen Vorschlag wie man das für eine bestimmte Artikel und/oder Optionsvorlage machen kann.
Bisher ist das nämlich einfach, die Codes stehen direkt in den Vorlagen oder werden dort includet. Und ein $(document).ready(function() kann man auch nicht benutzen da Jquery noch nicht geladen wurde.
comment:10 by , 10 years ago
| Priority: | normal → hoch |
|---|---|
| Resolution: | fixed |
| Status: | closed → reopened |
Ich möchte die Changesets r9170 & r9173 unbedingt wieder revoken!
Das jQuery hat im head absolut nichts zu suchen.
Für die PayPal Payment Wall kann man mit strpos($PHP_SELF, FILENAME_CHECKOUT_PAYMENT) eine Ausnahme definieren, wenn wir es nicht über einen anderen Weg schaffen, dass die PayPal Payment Wall funktioniert.
Wer jQuery in head haben will, der soll sich das dort selber wieder hoch setzen. Sind nur zwei Zeilen, die verschoben werden müssen.
Übrigens funktioniert MODUL: Neuer Attribute Price Updater im Gegensatz zu MODUL: ATTRIBUTE PRICE UPDATER auch völlig problemlos in der "general_bottom.js.php".
comment:11 by , 10 years ago
Man kann in der general-bottom.js folgendes machen, Simulation eines include_once:
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write('<script src="<?php echo DIR_WS_BASE.DIR_TMPL_JS; ?>jquery-1.8.3.min.js" type="text/javascript"><\/script>');
}
</script>
Falls man jQuery vorher benötigt kann man es an beliebiger Stelle einbinden und es wird dann in general-bottom.js nicht erneut geladen.
comment:12 by , 10 years ago
| Milestone: | modified-shop-2.00 → modified-shop-2.10 |
|---|---|
| Version: | 2.0 → 2.10 |
comment:13 by , 9 years ago
Replying to web28:
Replying to anonymous:
[...]
Da gehören sie aber doch nicht hin.
Wenn die general.js.php in der application_bottom.php eingebunden ist kann man dort alles an JS einbauen was benötigt wird, auch konditional nur für bestimmte Seiten, wie bislang auch.
[...]
Da bitte dann ich um einen Vorschlag wie man das für eine bestimmte Artikel und/oder Optionsvorlage machen kann.
Bisher ist das nämlich einfach, die Codes stehen direkt in den Vorlagen oder werden dort includet. Und ein $(document).ready(function() kann man auch nicht benutzen da Jquery noch nicht geladen wurde.
Das geht ganz einfach indem man im HTML für die Vorlage z.B. eine bestimmte ID an das Elternelementes vergibt und im jQuery mittels .length abfragt ob das Element vorhanden ist und führt nur dann das JS aus.
Gruß,
noRiddle
comment:14 by , 8 years ago
| Milestone: | modified-shop-2.1.0.0 |
|---|
comment:15 by , 6 years ago
| Milestone: | → modified-shop-2.0.5.0 |
|---|

jQuery im Head zu laden ist für Google Page Speed "tödlich"
Javascripte gehören in den Footer. Es muss ja eine Möglichkeit geben das ganze in die "general_bottom.js.php zu verlagern. Mit den Tabs ist das ja auch möglich.