Compilar e dar erro de .JS

.NET

19/10/2012

Pessoal, estou com um problema em um arquivo .JS. Sempre que eu vou debugar, me dá esse erro:

Erro em tempo de execução do Microsoft JScript: Não é possível definir a propriedade 'value': o objeto é nulo ou não definido.

E esse erro vai direto para essa função JS

function PageChange() {
document.getElementById("AccordionPane3_content_txtPDF").value = document.getElementById("Xpress").CurrentPage;
document.getElementById("AccordionPane3_content_txtPDFTotal").value = document.getElementById("Xpress").PageCount;
}
Pjava

Pjava

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

19/10/2012

Ao meu ver, das duas uma:
- O objeto AccordionPane3_content_txtPDF e o outro não estão sendo localizados no documento. Assim, o getElementById retorna null e você não pode acessar a propriedade. Verifique se esse é realmente o Id do objeto e faça testes mais simples para ver se está conseguindo acessá-lo via Javascript.
- A propriedade value não existe nesses objetos.
GOSTEI 0
Pjava

Pjava

19/10/2012

Realmente é isso mesmo Joel, mas eu estou com um problema. Esse objeto está com visible false, logo ele não carrega nenhum valor. Eu preciso na função javascript fazer um if, para, se ele estiver visible = false, eu não carrego nada e do contrário a função é carregada. Mas estou com dificuldade para fazer esse if no Javascript. Veja os códigos:
Aqui chama a função PageChange.

function setarPrincipal(host, imagem) {

document.getElementById("Xpress").DisplayFromURL(host, imagem);
PageChange();
}
E é aqui que eu deveria fazer o IF:

function PageChange() {

meu if estaria aqui, nessa linha,tipo:
se(AccordionPane3_content_txtPDFTotal == visible) faz o resto

document.getElementById("AccordionPane3_content_txtPDF").value = document.getElementById("Xpress").CurrentPage;
document.getElementById("AccordionPane3_content_txtPDFTotal").value = document.getElementById("Xpress").PageCount;
}
GOSTEI 0
Pjava

Pjava

19/10/2012

Para resolver o problema da função fiz isso por sugestão de um colega de forum e resolveu:
function PageChange() {
if (document.getElementById("AccordionPane3_content_txtPDF") != null) {
document.getElementById("AccordionPane3_content_txtPDF").value = document.getElementById("Xpress").CurrentPage;
}

if (document.getElementById("AccordionPane3_content_txtPDFTotal") != null) {
document.getElementById("AccordionPane3_content_txtPDFTotal").value = document.getElementById("Xpress").PageCount;
}
}



realmente não entendi esse código, o que é o "Xpress" nesse contexto.

<table id="tabelaPrincipal" style="height: 100%" width="100%">
<tr>
<td id="princ" style="width: 80%" valign="top">
<object id="Xpress" type="application/x-oleobject" classid="CLSID:F48DE781-C525-44C9-9529-C5ADE3EF5F70"
standby="Loading GdPicture Imaging SDK" codebase="http://www.gdpicture.com/pub/gdpicturepro5.cab#Version=5,3,0,0">
<param name="BackColor" value="16777215">
<param name="BorderStyle" value="1">
<param name="ZoomMode" value="3">
<param name="LicenseKey" value="1519505177564446357431548">
Your browser cannot activate this GdPicture Imaging SDK control.
</object>
GOSTEI 0
Alisson Santos

Alisson Santos

19/10/2012

O que está ocorrendo agora, pois se você fez corretamente como seu amigo falou era para estar funcionando.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

19/10/2012

Bom, PJava, o Xpress aí é a tag object que carrega um objeto externo, porem o que é esse objeto fica um pouco complicado de dizer.
Para saber de que se trata, ponha só essa tag em um arquivo para ver o que é interpretado pelo browser.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

19/10/2012

Conseguiu resolver essa questão, PJava? Poderia compartilhar conosco o que foi necessário fazer?
Abraço.
GOSTEI 0
Pjava

Pjava

19/10/2012

Cara, meu note quebrou e não testei nada. Tão logo eu o tenha, vou testar e postar o result.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

19/10/2012

Show de bola, amigo. Essas broncas com pc sempre ocorrem quando mais precisamos dele.
Boa sorte.
GOSTEI 0
José

José

19/10/2012

Como a duvida aparentemente foi sanada, estou dando o tópico por concluído.
GOSTEI 0
POSTAR