Sweetalert: Obtendo 'Uncaught RangeError: Tamanho máximo da pilha de chamadas excedido.' erro

Criado em 10 out. 2014  ·  10Comentários  ·  Fonte: t4t5/sweetalert

SweetAlert está funcionando perfeitamente, mas estou tendo um erro. Eu uso o modal bootstrap e, enquanto o tenho aberto, uso também o SweetAlert. Depois de clicar em 'Cancelar', 'OK' .... no SweetAlert, recebo este erro 'Intervalo não capturado: Tamanho máximo da pilha de chamadas excedido'. O problema está aqui:

      if (btnIndex === -1) {
        // Something in the dom, but not a visible button. Focus back on the button.
        $targetElement.focus();
      }

Quando comento este código, não recebo mais o erro.
PS: Não recebo esse erro quando não estou com o modal aberto.

Comentários muito úteis

Eu tenho a solução:
Comentário :
$targetElement.focus ();
_Provavelmente na linha 413._

Todos 10 comentários

Eu também tive esse erro.
É porque SweetAlert travando com o modal de bootstrap, eu acho que você está tentando fazer um alerta doce quando você tem um modal aberto (de bootstrap). É quando o erro que você mencionou está acontecendo.
Você precisa de alguma forma (bem, eu não sei quais são suas necessidades) primeiro fechar o modal de bootstrap e só então solicitar o alerta doce. E vai ficar tudo bem.

Obrigado @littleneotrix. Exatamente, eu estava tentando fazer o alerta doce enquanto o modal bootstrap era aberto e sua solução funcionava totalmente, mas no meu aplicativo eu precisava deixar assim, por isso tive que comentar o código.

Bem, então você pode experimentar e brincar um pouco ...
Você pode usar o Javascript antes de abrir o Sweetalert, basta usar .hide () no modal de bootstrap,
e só então abra o Sweetalert, mas faça assim mais ou menos:

swal({   title: "Are you sure?",   text: "Your will not be able to recover this imaginary file!",   type: "warning",   showCancelButton: true,   confirmButtonColor: "#DD6B55",   confirmButtonText: "Yes, delete it!",   closeOnConfirm: false }, function(){   $('#myModal').modal('show')});

Como você pode ver na função no final do objeto, digo a ele para solicitar de volta o modal.
Então ... primeiro ocultar o modal -> solicitar o sweetalert -> na confirmação do sweetalert, solicitar de volta o modal.
Essa é a melhor solução que posso oferecer;)
A menos, é claro, que o bootstrap conserte isso.

Estou passando pelo mesmo problema. É um problema de bootstrap ou sweetalert? A mensagem de aviso no meu caso é gerada por sweetalert, mas pode ser causada por bootstrap.

Eu tenho o mesmo erro
no meu caso, eu tenho botões no meu modal, os botões significam para deletar coisas, quando clicado eu uso o swal para confirmar, neste ponto nenhum erro, mas quando eu prossigo e clico no botão 'cancelar' ou 'confirmar', eu obtenho o erro.

Estou recebendo esse problema também, adiando o uso da classe de alerta do bootstrap por enquanto.

Encontrei o mesmo problema e descobri uma maneira decente de lidar com isso. Basicamente, oculto o modal, mostro o swal e, ao confirmar, trago de volta o modal. Se alguém estiver usando pop-up magnífico, por exemplo, o código seria semelhante a este:

$('.mfp-wrap').hide();
swal({
    title: "Updated!",
    text: "#" + data.updateData['number'] + " was successfully updated",
    type: "success"
},
function(isConfirm) {
    $('.mfp-wrap').show();
});

Isso é basicamente o que @littleneotrix estava falando. Eu simplesmente não entendi sua explicação no início e pensei em dar um exemplo mais detalhado. Acho que é uma solução elegante o suficiente para o meu caso de uso.

Para aqueles que estão perguntando, não acho que haja muito que os desenvolvedores possam fazer para corrigir esse problema. Modais duplos e retornos de chamada são pesados.

Eu tenho a solução:
Comentário :
$targetElement.focus ();
_Provavelmente na linha 413._

Basta adicionar $.fn.modal.Constructor.prototype.enforceFocus = function () {}; antes de chamar swal(...);

Vamos mantê-lo em um único problema: https://github.com/aspnetboilerplate/aspnetboilerplate-templates/issues/48

Sinta-se à vontade para tentar novamente no SweetAlert 2.0.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

daftspunk picture daftspunk  ·  4Comentários

Lusitaniae picture Lusitaniae  ·  4Comentários

girishbr picture girishbr  ·  5Comentários

AlexV525 picture AlexV525  ·  4Comentários

adiwithadidas picture adiwithadidas  ·  4Comentários