내 손에 약간의 문제가있어 일주일 내로 내 작업을 수행하겠다고 위협하고 있습니다. URL에서 웹 페이지를 스크랩하고 자바 스크립트를 제외한 내 브라우저에서 스크랩 한 웹 페이지를 표시하려고합니다. 내 스크랩이 노드에서 발생합니다 내 프로그램 흐름 :브라우저에서 자바 스크립트 오류를 억제하는 방법은 무엇입니까?
- URL에서 내 서버로 HTML 페이지를 가져옵니다.
- (즉, 이미지 URL, CSS 가져 오기 링크 등)
- 이 새로운 자원을 다운로드하는 외부 링크를 확인하기 위해
htmlparser2
(안 자바 스크립트 링크)를 사용하여 페이지 - 구문 분석 CSS의 모든 CSS와 이미지 링크를 확인하고 모든 리소스가 다운로드 될 때까지 단계 3을 반복하십시오. &
- HTML 페이지에서 모든 스크립트 태그를 제거합니다 (간단한 문자열 조작을 사용하여이 작업을 수행함).
Google Closure
(캔버스를 사용하는 일종의 정교한 동적 오버레이를 추가 함)을 사용하여 컴파일 된 내 자바 스크립트 링크가 포함 된 내 자신의 단일 스크립트 태그를 HTML에 추가하십시오.- 내 서버에서 페이지를 제공하려면 브라우저에서 다운로드 한 HTML의 URL을 엽니 다.
- 페이지가 브라우저에서 열리지 만 내 서버에서 서비스되며 자바 스크립트가 실행되고 최종 결과가 표시됩니다.
하지만 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
을 붙잡고 처리하는 방법이 있습니까?
고맙습니다!
당신이 텍스트 처리 대신 DOM을 사용하는 경우이 간단합니다. –
@ Ja͢ck 당신은 속성 제거를 의미합니까? –