Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brcontainer

Erro no download

Recommended Posts

Ao tentar direcionar uma página para um download com window.location, ocorre o seguinte erro:

 

Frame load interrupted by policy change

 

 

Código de teste:

 

 

function Download(){
    window.location = "app.exe";
}
<a href="javascript:void(Download())">Start Download</a>

 

 

Esse erro só ocorre nos navegadores criados com QT+Webkit (QWebView), nos demais navegadores (firefox, Chrome, IE) o download ocorre normalmente.

 

 

Console do QWebInspector:

 

 

 

dwasi.png

 

Será que eu tenho que configurar algo no compilador ou configurar no QWebSettings???

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq vc não faz simplesmente:

<a href="app.exe">Start Download</a>
??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá William, tudo bem contigo?

 

Na verdade isso é apenas um exemplo. Existem sistemas (softwares online como Webmails) que para evitar o Foward usam Iframes com window.location para executar a ação de download e ao invés de fazer o download ocorre esse erro (não é o problema com o javascript em si, já que existem vários sistemas que usam Iframes e location para direcionar a página para downloads).

 

O problema aqui realmente é o "Policy", que causa está "falha" (bloqueio).

 

Gostaria de saber se eu tenho que configurar algo no compilador ou configurar no QWebSettings?

 

[editado]

Quem moveu o meu tópico para Javascript? Essa pergunta é sobre Qt+Wekit (ou seja c++).

 

 

 

Que vacilo da moderação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fui eu quem moveu, porque parece que vc está pedindo ajuda p/ a parte javascript + HTML do negócio.

Fácil falar que é vacilo sem entender o motivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me perdoe _Isis_, mas foi vacilo sim. Eu já conheço a "casa" a muito tempo e conheço as regras, não iria cometer tal gafe de postar em local totalmente errado.

 

No final do meu poste tem a seguinte pergunta:

 

 

Será que eu tenho que configurar algo no compilador ou configurar no QWebSettings???

 

Ou seja compilador fica já claro que é sobre c/c++/etc.

QWebSettings é uma "função" da biblioteca C++ estendida pelo QT, que deixa também claro que é sobre C++.

 

Me perdoe o jeito de falar. Vacilo quando me refiro, é ler por cima algo e deduzir sem ter certeza. Portanto não me leve a mal.

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu descobri, nos navegadores Webkit convencionais (como Safari), ao fazer um download o console mostra que a requisição é cancelada, portanto antes de criar um "Download manager" no QT, devemos cancelar ela primeiro, e só então criar uma nova requisição no "Download Manager".
Solução:
//replace [QWebView] by your WebView
connect([QWebView]->page(), SIGNAL(unsupportedContent(QNetworkReply*)),
this, SLOT(downloadContent(QNetworkReply*)));

...

void [main class]::downloadContent(QNetworkReply *reply){
    //Replace "[main class]" pela sua "Classe" principal.

    [QWebView]->stop();
    //solution: stop loading --troqye [QWebView] pelo seu WebView

    /*função para download*/
}

fonte:

http://stackoverflow.com/questions/16278747/error-downloading/16782607#16782607

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.