Ab Liferay 7 / DXP wurde der Liferay-Standard-AUI für veraltet erklärt, und jetzt wird der Code auf der Liferay-Hauptkörperseite in Metal.js usw. geschrieben, aber die Bibliothek usw. sind noch nicht angereichert und der veraltete AUI wird weiterhin verwendet. Ich bin. Wenn Sie Ihre eigene Bibliothek mithilfe einer Javascript-Bibliothek mit benutzerdefiniertem Portlet usw. entwickeln möchten, eignet sich das Laden der Bibliothek mit dem von Liferay empfohlenen AMD-Loader auch für die globale Definition, selbst wenn Sie die Bibliothek mit einer gängigen Kombination wie JQuery + JQuery UI laden Ich kann damit nicht umgehen und es tritt ein Fehler auf Es ist etwas veraltet, aber wenn Sie die Bibliothek mit dem Skript-Tag laden müssen, habe ich ein Beispiel erstellt, wie Sie sie mit "CustomJspBag" laden können.
https://github.com/yasuflatland-lf/js-global-hook
Für diejenigen, die DXP nach DE30 verwenden, https://github.com/liferay/liferay-blade-samples/tree/master/gradle/apps/npm/jquery-npm-portlet Wie JQuery wird mit npm geladen und kann verwendet werden, also verwenden Sie bitte diese Methode.
Der Punkt ist
src/main/resources/META-INF/jsps/html/common/themes/top_js-ext.Es wird in jspf sein.
[Wie in diesem Artikel](https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/using-external-libraries) macht die Bibliothek global verfügbar.
#### **`top_js-ext.jspf`**
```jspf
<link href="https://code.jquery.com/ui/1.12.1/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<%-- This part enable to expose JS object to global --%>
<script>
define._amd = define.amd;
define.amd = false;
</script>
<script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script>
<%-- This part disable to expose JS object to global --%>
<script>
define.amd = define._amd;
</script>
Recommended Posts