Pergunta

Estou a depuração de um problema de javascript específicos do Safari, e eu não posso obter console.log para a saída para o log de erro. Esta é uma documentado recurso de Safari (estou usando a versão 4.0.3). Estas declarações no meu código apenas parecem ser ignoradas, no entanto. Por quê?

Foi útil?

Solução

Graças à Breton e SeanJA para as suas sugestões de testar diretamente no console e fazer um arquivo de exemplo. Depois de fazer isso, eu percebi que console.log era, de fato, trabalhando em um ambiente isolado. Isso me fez perceber que ele deve ser algo especial para o meu ambiente de desenvolvimento. Verificar ao redor, eu achei que havia alguma JavaScript que está sendo carregado no início, destinado a definir o objeto console para navegadores não-Firebug habilitados.

if (!("console" in window) || !("firebug" in console))
 {
     var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
     "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

     window.console = {};
     for (var i = 0; i < names.length; ++i)
         window.console[names[i]] = function() {}
 }

Este aparentemente foi escrita antes Safari tinha implementado um objeto console para a sua janela de erro.

Eu removi que e agora tudo funciona bem. Obrigado, pessoal.

Outras dicas

Você está usando o Mac ou Windows construção?

Nas janelas construir eu não posso usar a maioria das coisas nos "desenvolver" os homens, nenhuma das opções javascript funciona para mim. Eu só pode usar

  • Abra a página com
  • User Agent
  • Mostrar snipper editor
  • Desativar *

No Firefox Eu sei que agora você precisa ter o console Firebug aberto para console. * Funções para o trabalho. Talvez seja o mesmo?

Você poderia tentar ativar o modo de depuração. Eu não tenho idéia se isso vai fazer alguma diferença, mas você pode experimentá-lo: As instruções para ativar o modo de depuração

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top