Erro de JavaScript no Internet Explorer incorporado

Erro de JavaScript no Internet Explorer incorporado

Tenho um wallboard configurado para exibir estatísticas no escritório, mas o widget que usa o Internet Explorer integrado continua apresentando um erro de JavaScript.

insira a descrição da imagem aqui

O erro pode ser resolvido sem causar problemas, mas é irritante, pois volta de vez em quando, cerca de 2 a 3 vezes por dia e, quando isso acontece, impede que qualquer pessoa visualize as estatísticas até que seja fechado, acessando remotamente o wallboard. No Internet Explorer normal, isso pode ser facilmente interrompido desmarcando a opção abaixo.

insira a descrição da imagem aqui

Minha pergunta é como desativar esse pop-up de erro de script no Internet Explorer incorporado ao meu widget?

Editar: Resposta à resposta de harrymc

Agora editei essas configurações usando o regedit de acordo com as instruções do harrymc, mas o erro ainda aparece.

Responder1

Como você pode editar o registro, o artigo a seguir lista muitas configurações do IE:
Como personalizar as configurações do Internet Explorer virtual.

Para desativar "Exibir uma notificação sobre cada erro de script", use o seguinte arquivo .reg:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Error Dlg Displayed On Every Error"="no"

Responder2

Neste caso específico, em vez de tentar ocultar o erro, você pode evitá-lo completamente (ou indicar esta postagem ao seu fornecedor para corrigir o JavaScript):

  • Talvez o servidor não retorne nenhum valor para as "guias abertas" no JavaScript abaixo;tente alterar as configurações das guias do widgetpara forçar o servidor a definir algum valor. Se você não conseguir fazer isso no wallboard, tente em um navegador normal, esperando que isso salve as configurações no servidor.

Quando isso não ajudar, tente o seguinte em um navegador Internet Explorer "normal":

  • Talvez o domínio da URL que você está usando seja diferente daquele do qual o script é carregado (ou: o URL do qual o widget carrega seu HTML ou dados), fazendo com que o IE sinta que está lidando com um cookie de terceiros. Então:veja o que permitir cookies de terceiros traz para você. Veja o da MicrosoftBloquear, ativar ou permitir cookies.

  • Talvez a configuração ou leitura de cookies em JavaScript precise de alguns direitos adicionais. Então:veja se adicionar daviker.whccs.comaos sites confiáveis ​​ajuda, para permitir que ele faça um pouco mais? Veja o da MicrosoftZonas de segurança: adicionar ou remover sites.

  • Talvez o servidor já tenha definido um cookie com o mesmo nome, mas o marcou comoSomente http, tornando-o inacessível a partir de JavaScript.Tente excluir qualquer cookie de "guias ativas" existente.

Fundo:

O erro na linha 1546 deo roteiroestá relacionado a um cookie específico que não está disponível para esse script, logo após o mesmo script tentar definir/alterar esse cookie (na linha 1541, onde seu valor pode realmente ser, undefinedpois a linha 1533 falha ao verificar isso):

1527    restoreTabsFromTheServer: function()
1528    {
1529        $.post("xrm_ui?get=getTabs", {}, function(responce) {
1530
1531            reportTabs.tabCaptions = responce.reportPages;
1532
                // Next line only checks for an empty "openedtabs", not for
                // an undefined or null value; bad coding...
1533            if (responce.openedtabs == '')
1534            {
1535                $.cookie("active-tabs", '');
1536                reportTabs.tabidSelected = undefined;
1537                reportTabs.tabindexSelected = undefined;
                    // Next line would exit the function if we had an empty
                    // result, but not if it is undefined or null
1538                return false;
1539            }
1540
                // Next line: NO ERROR WHILE WRITING, but the new value could
                // be undefined, which might even clear an existing cookie?
1541            $.cookie("active-tabs", responce.openedtabs);
1542            reportTabs.tabidSelected = responce.tabidselected;
1543            reportTabs.tabindexSelected = responce.tabindexselected;
1544
1545            // restore tabs
                // Next line: NO RESULT WHEN READING
1546            var arr = $.cookie("active-tabs").split(',');
1547            ...

Portanto, parece que o IE incorporado está ignorando a configuração do JavaScript nesse cookie, ou o JavaScript define o cookie como indefinido. E então, ao tentar ler seu valor, ele fica vazio .

Não sei se o componente incorporado do IE usa o navegador IE "normal"configuraçõespara biscoitos. Mas certamente vi componentes incorporados do IEcompartilharcookies com o navegador IE. (Como ao clicar em links no Excel quando o IE não é o navegador padrão,Os cookies do IE ainda são usados ​​para algumas descobertas.) Portanto, talvez alterar as configurações no navegador IE "normal" permitirá que o JavaScript defina esse cookie no componente incorporado.


Alternativamente, talvez o valor recebido do servidor na linha 1529 não seja um valor válido, fazendo com que a escrita ou leitura falhe. Comovírgulas não são permitidas em cookies, então .split(',')parece suspeito. Mas então: nem sabemos para qual plugin jQuery é usado $.cookie, então precisaríamos de muito mais detalhes para descobrir se ele está usando alguma codificação.

Responder3

Para qualquer pessoa que esteja enfrentando um caso semelhante a este com o Windows 11, você pode ficar frustrado porque a capacidade de desmarcar “Exibir uma notificação sobre cada erro de script” não está mais disponível nas Opções da Internet. A excelente solução do harrymc para modificar essa configuração por meio do Registro também parece ser ignorada pelo Internet Explorer agora.

Se você está simplesmente tentando evitar um prompt irritante de um determinado aplicativo que está chamando um URL específico, uma solução potencial é impedir a execução de scripts nesse site (se isso não interromper a funcionalidade do seu aplicativo). A maneira mais simples de conseguir isso é a seguinte:

  • Pressione Iniciar, digite "Opções da Internet" e pressione Enter.Correspondência de pesquisa de opções da Internet no menu iniciar
  • Na guia Segurança, clique em “Sites restritos” e depois em “Sites”. Na guia Segurança em Opções da Internet, há uma zona chamada Sites restritos que parece um sinal de proibição de entrada. Clique nele e, em seguida, clique no botão Sites abaixoNa guia Segurança em Opções da Internet, há uma zona chamada Sites restritos que parece um sinal de proibição de entrada. Clique nele e, em seguida, clique no botão Sites abaixo
  • Digite o site para o qual deseja desabilitar os scripts e clique em “Adicionar”. Na caixa de texto Adicionar este site à zona, digite o site que deseja adicionar (geralmente sem qualquer sufixo de caminho) e clique em Adicionar. Para o caso deste artigo, o site pode serhttps://daviker.whccs.com Você pode selecionar um site adicionado anteriormente e clicar em Remover para configurar ainda mais esta zona.Na caixa de texto Adicionar este site à zona, digite o site que deseja adicionar (geralmente sem qualquer sufixo de caminho) e clique em Adicionar. Para o caso deste artigo, o site pode ser https://daviker.whccs.com. Você pode selecionar um site adicionado anteriormente e clicar em Remover para configurar ainda mais esta zona.

Clique em Fechar e depois em OK.

informação relacionada