This wiki does not contain official documentation and is currently deprecated and read only. Please try reading the documentation on the Liferay Developer Network, the new site dedicated to Liferay documentation. DISCOVER Build your web site, collaborate with your colleagues, manage your content, and more. DEVELOP Build applications that run inside Liferay, extend the features provided out of the box with Liferay's APIs. DISTRIBUTE Let the world know about your app by publishing it in Liferay's marketplace. PARTICIPATE Become a part of Liferay's community, meet other Liferay users, and get involved in the open source project. Including Javascript Files in pages and portlets
Alternative Languages: 日本語
How do I include JS files in all my portlets? #
If you want have Javascript in .js files that you want to make available to all your portlets, there are two ways in which you can include them depending on your version of Liferay.
For version 5.2.3 #
Use Render Part Request (JSR268) #
0/ set usage of Sun's container with portal property (in portal-ext.properties):
portlet.container.impl=sun
1/ put in portlet.xml :
<portlet> … <container-runtime-option> <name>javax.portlet.renderHeaders</name> <value>true</value> </container-runtime-option> </portlet>
2/ override doHeaders() of GenericPortlet :
@Override
protected void doHeaders (RenderRequest request, RenderResponse response)
{
org.w3c.dom.Element styleLink = response.createElement("link");
styleLink.setAttribute("rel", "stylesheet");
styleLink.setAttribute("href", response.encodeURL(request.getContextPath())+"/css/default.css" );
response.addProperty(MimeResponse.MARKUP_HEAD_ELEMENT, styleLink);
}The link will be added to the page header.
For version 4.3: #
1. copy js files into portal-web/docroot/html/js or into ext-web/docroot/html/js #
2. In your portal.properties, find the entry for javascript.files, and copy/paste that entire entry into your portal-ext.properties #
javascript.files=\
\
#
# JQuery scripts
#
\
jquery/jquery.js,\
....3. Paste your files to the very end of the entry that you copied over #
For version 4.2: #
1. copy js files into portal-web/docroot/html/js or into ext-web/docroot/html/js #
2. add entry in build.properties #
## ## JavaScript ## javascript.files=sniffer.js,menu.js,rollovers.js,util.js,validation.js,portal.js,tabs.js,ajax.js,calendar/calendar_stripped.js,calendar/calendar-setup_stripped.js,colorpicker/colorpicker.js,dragdrop/coordinates.js,dragdrop/drag.js,dragdrop/dragdrop.js,dragdrop/resize.js,portlet/layout_configuration.js
3. add entry in top_js.jsp #
portal/portal-web/docroot/html/common/themes/top_js.jsp
<c:choose> <c:when test="<%= GetterUtil.getBoolean(PropsUtil.get(PropsUtil.JAVASCRIPT_FAST_LOAD)) %>"> <%-- everything.js includes all of the JavaScript files. It is autogenerated with the ant build-javascript task. --%> <script src="<%= themeDisplay.getPathJavaScript() %>/everything.js" type="text/javascript"></script> <c:if test="<%= GetterUtil.getBoolean(PropsUtil.get(PropsUtil.JAVASCRIPT_LOG_ENABLED)) %>"> <script src="<%= themeDisplay.getPathJavaScript() %>/log.js" type="text/javascript"></script> </c:if> </c:when> <c:otherwise> <script src="<%= themeDisplay.getPathJavaScript() %>/prototype.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/json.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/sniffer.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/util.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/portal.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/ajax.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/alerts.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/swfobject.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/calendar/calendar_stripped.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/calendar/calendar-setup_stripped.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/colorpicker/colorpicker.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/dragdrop/coordinates.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/dragdrop/drag.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/dragdrop/dragdropzone.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/dragdrop/resize.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/portlet/layout_configuration.js" type="text/javascript"></script> <script src="<%= themeDisplay.getPathJavaScript() %>/portlet/messaging.js" type="text/javascript"></script> <c:if test="<%= GetterUtil.getBoolean(PropsUtil.get(PropsUtil.JAVASCRIPT_LOG_ENABLED)) %>"> <script src="<%= themeDisplay.getPathJavaScript() %>/log/log4javascript.js" type="text/javascript"></script> </c:if> </c:otherwise> </c:choose>
based on the value of "javascript.fast.load" (defined in portal.properties), Liferay will either use everything.js (a compilation of all the js files) or will include each individual js file (listed in the <c:otherwise> tag). Add the html statement to include your JS file.
see also:
- Liferay FAQ: How do you include CSS and JavaScript in a portlet? http://wiki.liferay.com/index.php/Liferay FAQ#How do you include CSS and JavaScript in a portlet.3F
51512 Views