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.