Rev. 2.73

error.png

"oTidyBrowser is not defined" 오류는 파이어폭스의 확장기능인 "Html Validator"로 인하여 발생하는 자바스크립트 오류로써 파이어폭스를 장시간 사용하거나 윈도간 함수를 호출할 때 빈번하게 발생합니다. 상황을 재연하기가 어렵고 나타는 오류 메시지 역시 동일하지 않다는 점은 간혹 사람을 미치게 만드는데요. 파이어버그와 같이 사용하는 경우라면 위 화면에 보이는 것 처럼 마치 자신이 작성한 코드에서 발생한 오류인 것으로 보여 오해를 사게 하기도 합니다. 더욱 열받는 것은 이 버그가 1년이 넘도록 방치되어 왔다는 사실입니다. 만약 위와 같은 오류로 인하여 삽질을 하셨거나, 오해를 받았다거나, 누명(?)을 뒤집어 쓸뻔한 적이 있다면, 다음의 과정을 거쳐 해당 오류를 수정하고 자신의 잘못이 아님을 증명할 수 있습니다.

먼저 "Html Validator" 확장기능이 설치된 폴더를 찾습니다.(찾는 방법 생략) 그리고 "chrome/tidy.jar" 파일의 압축을 풀어(zip으로 확장자를 변경하여 풀 수 있음) "content/tidyBrowser.js" 파일을 자신이 즐겨 사용하는 편집기로 엽니다. "tidyEndDocumentLoadObserver"로 검색하면 216라인 부근에서 아래와 같은 코드를 발견할 수 있습니다. 이 코드의 내용을 아래와 같이 수정하고 "tidy.jar"파일에 덮어씌운 후 브라우저를 재시작하면 이 오류는 더이상 발생하지 않습니다.

변경 전:

var tidyEndDocumentLoadObserver =
{
  observe: function(subject, topic, data) 
  {
    if( oTidyBrowser.bTopLoadBusy==false )
    {  
      oTidyUtil.tidy.log( '<JAVASCRIPT>tidyEndDocumentLoadObserver' );
      oTidyBrowser.bTopLoadBusy = true;
      try
      {
        // Validate the 1rst request
        oTidyBrowser.bIgnorePageShow = true;
        oTidyBrowser.validateFrame( window.content );
        ...

변경 후:

var tidyEndDocumentLoadObserver =
{
  observe: function(subject, topic, data) 
  {
    if( !window.oTidyBrowser )
    {
      // Do nothing
    }
    else if( oTidyBrowser.bTopLoadBusy==false )
    {  
      oTidyUtil.tidy.log( '<JAVASCRIPT>tidyEndDocumentLoadObserver' );
      oTidyBrowser.bTopLoadBusy = true;
      try
      {
        // Validate the 1rst request
        oTidyBrowser.bIgnorePageShow = true;
        oTidyBrowser.validateFrame( window.content );
        ...

Comments

Got something to add? You can just leave a comment.

Your Reaction Time!

captcha

avatar