I'm working in file downloading with Primefaces 4.0. I just want to trigger a JS function when download completes, but seems not to work (tried in Firefox and Google Chrome). My test case looks similar to what's done in the PF docs:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head />
<h:body>
<script type="text/javascript">
function startMessage() {
alert("Download started!");
}
function finishMessage() {
alert("Download finished!");
}
</script>
<h:form>
<p:commandButton value="Download" ajax="false"
icon="ui-icon-arrowreturnthick-1-s"
onclick="PrimeFaces.monitorDownload(startMessage, finishMessage)">
<p:fileDownload value="#{bean.file}" />
</p:commandButton>
</h:form>
</h:body>
</html>
@ManagedBean
@ViewScoped
public class Bean implements Serializable {
public StreamedContent getFile() {
return new DefaultStreamedContent(new ByteArrayInputStream(new byte[0]));
}
}
The alert is triggered when download starts, but not when download finishes. Could anyone else give it a try?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…