2014-09-17 2 views
1

내 손에 약간의 문제가있어 일주일 내로 내 작업을 수행하겠다고 위협하고 있습니다. URL에서 웹 페이지를 스크랩하고 자바 스크립트를 제외한 내 브라우저에서 스크랩 한 웹 페이지를 표시하려고합니다. 내 스크랩이 노드에서 발생합니다 내 프로그램 흐름 :브라우저에서 자바 스크립트 오류를 ​​억제하는 방법은 무엇입니까?

  1. URL에서 내 서버로 HTML 페이지를 가져옵니다.
  2. (즉, 이미지 URL, CSS 가져 오기 링크 등)
  3. 이 새로운 자원을 다운로드하는 외부 링크를 확인하기 위해 htmlparser2 (안 자바 스크립트 링크)를 사용하여 페이지
  4. 구문 분석 CSS의 모든 CSS와 이미지 링크를 확인하고 모든 리소스가 다운로드 될 때까지 단계 3을 반복하십시오. &
  5. HTML 페이지에서 모든 스크립트 태그를 제거합니다 (간단한 문자열 조작을 사용하여이 작업을 수행함).
  6. Google Closure (캔버스를 사용하는 일종의 정교한 동적 오버레이를 추가 함)을 사용하여 컴파일 된 내 자바 스크립트 링크가 포함 된 내 자신의 단일 스크립트 태그를 HTML에 추가하십시오.
  7. 내 서버에서 페이지를 제공하려면 브라우저에서 다운로드 한 HTML의 URL을 엽니 다.
  8. 페이지가 브라우저에서 열리지 만 내 서버에서 서비스되며 자바 스크립트가 실행되고 최종 결과가 표시됩니다.

하지만 8 단계에서 문제가 발생했습니다. 나는 HTML 페이지의 모든 스크립트 태그를 제거했지만 자바 스크립트 함수가 onload, onclick 같은 속성을 사용하여 HTML 자체 등 예를 들어

로부터 호출을 특정 페이지가 있습니다 :

<body onload="xxx()">....</body> 

은 이러한 페이지는 내 브라우저에서 Uncaught ReferenceError: xxx is not defined가됩니다.

Google 크롬과 같은 일부 브라우저는 콘솔에이 오류를 기록하지만 실행을 중지하지 않으므로 내 자바 스크립트가 문제없이 실행됩니다.

그러나 파이어 폭스, 오페라, IE와 같은 특정 브라우저는 실행을 멈추고 디버깅 모드로 들어가고 자바 스크립트는 실행되지 않습니다. 내가 효율적인을 찾을 수 있다면 난 아직 열려 오전 (

나는 내 서버에 내 HTML에서 이러한 모든 특성을 제거하는 방법에 대한 생각하지만 나는 list of all such attributes을 발견하고 긴 목록 이후 성능상의 이유로 위해 않기로 결정 이것을하는 방법).

나는 undefined references 때문에 내 HTML에 나타날 수있는 모든 자바 스크립트 오류를 ​​처리하고이를 억제하는 방법을 찾고 있습니다. 나는 사용하여 오류를 캡처 할 수 있습니다 :

window.onerror = function(msg, url, line, col, error) { 
    alert(msg); 
} 

을하지만 난은 Uncaught ReferenceError 오류가 발생하면 실행 흐름의 균형을 위해 뭔가를 할 수 있습니까? 기본적으로 자바 스크립트에서 ReferenceError을 붙잡고 처리하는 방법이 있습니까?

고맙습니다!

+0

당신이 텍스트 처리 대신 DOM을 사용하는 경우이 간단합니다. –

+0

@ Ja͢ck 당신은 속성 제거를 의미합니까? –

답변

1

시도 캐치 당신의 친구

try { 
// code 
} 
catch (e) { 
// handle the exception or ignore 
} 
+0

'try '블록 안에 무엇을 넣어야합니까? 이 오류는'document.roneadystatechange'에서 발생합니다. –

+0

나는 window.onerror를 사용하여 오류를 잡을 수있다. 내 질문은 어떻게 지금 그것을 억제합니까? –

+0

try catch, 코드 블록 또는 각 함수 내에서 문제를 일으키는 코드를 래핑하십시오. catch 블록에서 아무 것도하지 않으면 자동으로 오류가 표시되지 않도록 try catch를 여러 개 가질 수 있습니다. – saj

관련 문제