(Resolvido) onclick="history.back();" não funciona no template

7 respostas
H

Galera, preciso colocar um h:commandLink no template do sistema que irá funcionar como um botão voltar pra todas as telas.
Coloquei o onclick="history.back();" e não funcionou.
Testei colocar em uma página qualquer e funciona perfeitamente. Mas no template não funciona de jeito nenhum.

<h:form id="OptionsForm" >
               				<h:commandLink id="backLink" title="Voltar" onclick="history.back();">
	                    		<h:graphicImage library="images" name="top_1a_voltar2.jpg" style="border:0px"/>
               				</h:commandLink>
               			</h:form>
Alguém poderia me ajudar?

7 Respostas

M

tenta

onclick="history.go(-1);">
H

Tbm não funcionou Michels.
Em uma página normal ele funciona mas no template não.
No template ele não tá conseguindo pegar o contexto da aplicação.
Estou adicionando o template dessa forma:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	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:c="http://java.sun.com/jsp/jstl/core"
	xmlns:p="http://primefaces.org/ui">
	
	<f:view contentType="text/html">
		<ui:composition template="/_template.xhtml">
			<ui:define name="body">

                 ........................................

            </ui:define>
		</ui:composition>
	</f:view>
</html>

Está correto?

H

Alguém

G

Talvez ao juntar com o Template a página final tenha adquirido alguma característica que está fazendo o comando não ter o resultado esperado (alguma coisa com frames?)

Faça o seguinte: monte uma página (com template) o mais simples possível, com o mínimo necessário para reproduzir o problema, e poste aqui o código.
Provavelmente nesse processo de retirar elementos da página você mesmo vai acabar encontrando algo suspeito.

H

Desculpa pela demora.
Então Gomes, tirei tudo do template, porém, ainda não funcionou.
Segue abaixo meu código.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="pt-br" xml:lang="pt-br" xmlns="http://www.w3.org/1999/xhtml"
	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>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />                
        <title>${globalMsgs.label_title}</title>
        <h:outputStylesheet library="css" name="style.css" />
        <h:outputScript library="js" name="sics.js"/>
    </h:head>

    <h:body>
        <div align="center">
            <p:layout style="min-width:1220px;max-width:1220px;min-height:780px;" fullPage="true" >  
                <p:layoutUnit position="north" >
                
                	<div class="OptionsPanel">
               			<h:form id="OptionsForm" >
               				<h:commandLink id="backLink" title="Voltar" ajax="false" onclick="history.go(-1);">
	                    		<h:graphicImage library="images" name="top_1a_voltar2.jpg" style="border:0px"/>
               				</h:commandLink>
               			</h:form>
               		</div>
               		
          			<div class="header" >
                		<div class="headerLogo" >
                			<div class="userLogged">${globalMsgs.label_user_logged}: #{sessionScope.userLogged.name}</div>
	                    	<h:graphicImage library="images" name="top_logo.gif"/>
	    					<h:graphicImage library="images" name="top_tit_SICS.gif" />
	    				</div>
    				</div>
                </p:layoutUnit>                
	            <p:layoutUnit position="center">
	            	<div align="left">
		            	<ui:insert name="menu">
	                    	<h:form id="menuForm" >
	                            <p:menubar model="#{menuController.model}"/>
	                        </h:form>
	                    </ui:insert>									
						<ui:insert name="body">	                        	
	                   	</ui:insert>		
	            	</div>       	
                </p:layoutUnit>  
            </p:layout>  
        </div>
        
        
       
    </h:body>
</html>

Vc sabe onde poderia estar o problema?

G

Já tentou usar um link comum? Não sei se o command link se comporta bem para coisas que não são interação com servidor (inclusive por causa do atributo ajax=false, que determina que será feito um submit da página).

<a id="backLink" href="#" title="Voltar" onclick="history.go(-1); return false;">  
                                 <h:graphicImage library="images" name="top_1a_voltar2.jpg" style="border:0px"/>  
                             </a>
H

Orra Gomes, vc é o cara mesmo hein
Funcionou direitinho.

Só pra constar, testei com a tag do primefaces e tbm funcionou.

<p:commandLink id="backLink" title="Voltar" onclick="history.go(-1); return false;">
   								<h:graphicImage library="images" name="top_1a_voltar2.jpg" style="border:0px"/>
   							</p:commandLink>

Obrigado cara =)

Criado 15 de agosto de 2013
Ultima resposta 4 de set. de 2013
Respostas 7
Participantes 3