Erro de JavaScript no Internet Explorer incorporado

2

Eu tenho uma configuração do wallboard para exibir estatísticas no escritório, no entanto, o widget que usa o Internet Explorer incorporado continua criando um erro de JavaScript.

Oerropodeserencerradosemcausarproblemas,maséirritante,poissemprevoltade2a3vezespordiae,quandoissoacontece,impedequealguémvisualizeestatísticasatéquesejafechado,acessandoremotamenteowallboard.NoInternetExplorernormal,issopodeserfacilmenteinterrompido,desmarcandoaopçãoabaixo.

A minha pergunta é como desativar este erro de script pop-up no Internet Explorer que está embutido no meu widget?

Edit: Resposta à resposta de harrymc

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

    
por man-qa 15.05.2015 / 11:48

2 respostas

2

Como você pode editar o registro, o seguinte artigo lista várias 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"
    
por 18.05.2015 / 20:17
2

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

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

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

  • Talvez o domínio do URL que você está usando seja diferente daquele em que o script foi carregado (ou: o URL do qual o widget carrega seu HTML ou dados), fazendo com que o IE sinta que está lidando com um terceiro Biscoito Portanto, veja o que permite que cookies de terceiros o levem . Consulte da Microsoft, Bloquear, ativar ou permitir cookies .

  • Talvez configurar ou ler cookies em JavaScript precise de alguns direitos adicionais. Então: veja se adicionar daviker.whccs.com aos sites confiáveis ajuda , para permitir que ele faça um pouco mais? Consulte as Zonas de segurança da Microsoft: adicionando ou removendo sites .

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

Antecedentes:

O erro na linha 1546 do script está relacionado a um cookie específico que não está disponível para esse script, logo após o mesmo script ter tentado definir / alterar o próprio cookie (na linha 1541, onde seu valor pode, na verdade, ser undefined , já que a linha 1533 falha em 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            ...

Assim, 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 o seu valor, está vazio .

Não sei se o componente IE incorporado usa as configurações do navegador IE "regular" para cookies. Mas, com certeza, vi os cookies incorporados do IE compartilhar com o navegador IE. (Como quando clicar em links no Excel quando o IE não é o navegador padrão, IE os cookies ainda são usados para alguma descoberta .) Assim, talvez a alteração das configurações no navegador "regular" do IE permita que o JavaScript defina esse cookie no componente incorporado.

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

    
por 19.05.2015 / 13:29