[Resolvido]-Chamar arquivo .js no xhtml

Boa tarde pessoal, tudo certo? Bem, na minha aplicação tenho alguns dialogs em várias telas. Para abrí- los fiz um teste em javaScript. Se eu colocar o código na página está funcionando beleza. Porém, queria colocá- los em um arquivo .JS e chamar o mesmo na página. Pesquisei mas não estou sabendo como chamá -lo.
Abaixo o que eu tenho no global.js :

function chamaDialog(event, id) {
    if (event.altKey) {
        if (event.keyCode === 80 || event.keyCode === 112) {
            if (id === 'codigo_editora') {
                document.getElementById("tab:abreDialogEditora").click();
            }
            if (id === 'codigo_classificacao') {
                document.getElementById("tab:abreDialogClassificacao").click();
            }
        }
    }
}

Se alguém puder ajudar com o caminho, agradeço muito. Vlw

Consegui pessoal :

O jsf tem componentes pronto que fazem essa importação da forma que ele trabalha.
Dentro do webContent, vc cria uma pasta chamada: resources, pois é o padrão que o jsf procura e dentro dela pode criar pastas, como por exemplo uma pasta com nome de “js” dentro dessa pasta vc coloca seu arquivo global.js.
Ai vc usa o componente h:outputScript para chamar seu arquivo:

<h:outputScript name="global.js" library="js" />

Veja que o atributo library recebe um valor “js” esse valor é a pasta criada dentro da resources, o global.js é o arquivo dentro de js.

Voce pode fazer o mesmo para arquivos css, veja:

<h:outputStylesheet name="style.css" library="css" />

Lembrando que o valor css do atributo library é uma pasta que está dentro da pasta resources, e a resources fica dentro de webContent.

Espero que tenha entendido.

Abraços.

Fica com DEUS.

O jsf tem componentes pronto que fazem essa importação da forma que ele trabalha.
Dentro do webContent, vc cria uma pasta chamada: resources, pois é o padrão que o jsf procura e dentro dela pode criar pastas, como por exemplo uma pasta com nome de “js” dentro dessa pasta vc coloca seu arquivo global.js.
Ai vc usa o componente h:outputScript para chamar seu arquivo:

<h:outputScript name="global.js" library="js" />

Veja que o atributo library recebe um valor “js” esse valor é a pasta criada dentro da resources, o global.js é o arquivo dentro de js.

Voce pode fazer o mesmo para arquivos css, veja:

<h:outputStylesheet name="style.css" library="css" />

Lembrando que o valor css do atributo library é uma pasta que está dentro da pasta resources, e a resources fica dentro de webContent.

Espero que tenha entendido.

Abraços.

Fica com DEUS.
[/quote]

Bom dia. Bem, entendi sim, vou testar depois mais isso pra ver oke acontece. Vlw Abc

O jsf tem componentes pronto que fazem essa importação da forma que ele trabalha.
Dentro do webContent, vc cria uma pasta chamada: resources, pois é o padrão que o jsf procura e dentro dela pode criar pastas, como por exemplo uma pasta com nome de “js” dentro dessa pasta vc coloca seu arquivo global.js.
Ai vc usa o componente h:outputScript para chamar seu arquivo:

<h:outputScript name="global.js" library="js" />

Veja que o atributo library recebe um valor “js” esse valor é a pasta criada dentro da resources, o global.js é o arquivo dentro de js.

Voce pode fazer o mesmo para arquivos css, veja:

<h:outputStylesheet name="style.css" library="css" />

Lembrando que o valor css do atributo library é uma pasta que está dentro da pasta resources, e a resources fica dentro de webContent.

Espero que tenha entendido.

Abraços.

Fica com DEUS.
[/quote]

Testei e funcionou blz, assim eu não preciso colocar em ada xhtml akela linha que eu colocava antes (y)
mto obrigado cara. abc

O jsf tem componentes pronto que fazem essa importação da forma que ele trabalha.
Dentro do webContent, vc cria uma pasta chamada: resources, pois é o padrão que o jsf procura e dentro dela pode criar pastas, como por exemplo uma pasta com nome de “js” dentro dessa pasta vc coloca seu arquivo global.js.
Ai vc usa o componente h:outputScript para chamar seu arquivo:

<h:outputScript name="global.js" library="js" />

Veja que o atributo library recebe um valor “js” esse valor é a pasta criada dentro da resources, o global.js é o arquivo dentro de js.

Voce pode fazer o mesmo para arquivos css, veja:

<h:outputStylesheet name="style.css" library="css" />

Lembrando que o valor css do atributo library é uma pasta que está dentro da pasta resources, e a resources fica dentro de webContent.

Espero que tenha entendido.

Abraços.

Fica com DEUS.
[/quote]
Bem, depois de algum tempo o negócio não deu mais certo cara…Tenho o seguinte no arquivo global.js

function chamaDialog(event, id) {
    if (event.altKey) {
        if (event.keyCode === 80 || event.keyCode === 112) {
if (id === 'codigo_cidade') {
                document.getElementById(":form1:tab:abreDlg").click();
            }
}

E no xhtml:

<h:panelGrid columns="4">
                                            <p:outputLabel value="Cidade:"/>
                                            <p:inputMask onkeydown="chamaDialog(event, 'codigo_cidade');" id="codigo_cidade" size="2" mask="9?9999" placeHolder="" value="#{bibliotecasJsfBean.codigoCidadeParaRegistro}" style="width: 50px">
                                                <f:ajax render="codigo_cidade codigo_cidadeMostra bibCep grow2" event="change" listener="#{bibliotecasJsfBean.atualizarCidadePorCodigo(event)}"/>
                                            </p:inputMask>
                                            <p:inputText id="codigo_cidadeMostra" disabled="true" required="true" requiredMessage="O campo tipo de material não existe ou deve ser informado." value="#{bibliotecasJsfBean.crudObj.bibCodcidade.nome}" style="opacity: 2"/>
                                            <p:commandButton id="abreDlg" icon="ui-icon-search" onclick="dialogCidade.show();" type="button" ajax="false"/>
                                        </h:panelGrid>

Só que não está funcionando…A única diferença é que foi mudado o form… Vc ou alguém poderia dar uma ajuda aí? Se puder(em) ajudar, fico mto agradecido…Vlw…