필자는 IE6 용 웹 응용 프로그램 (10 년 전 필자가 짐작하고있는)을 사용하도록 강요 받았으며 IE (단점 모드의 최신 버전)에서만 작동합니다. 이벤트 처리기를 분리하고 DOM 호환 버전으로 바꾸는 스크립트를 주입하는 사파리 확장 기능으로 좀 더 심각한 자바 스크립트를 복구 할 수있었습니다.페이지 스크립트 전에 확장 스크립트를 트리거 할 수 있습니까?
저는 이제 내 관심을 완전히 망가 뜨리는 것보다 성가심으로 돌리고 있습니다. 사용자에게 진행 상황을 알리기 위해 경고를 많이 사용하면 고통 스럽습니다. 내 확장 기능을 사용하면 일부 css popovers로 window.alert 함수를 오버라이드하는 것이 꽤 좋을 거라고 생각했지만, 내가하는 도전은 http 포스트 다음에 전송 된 페이지와 관련이 있습니다. 첫 번째 작업은 표시입니다. 성공 (또는 실패) 알림.
this Apple documentation에 따르면 "시작 스크립트는 문서를 만들었지 만 웹 페이지가 파싱되기 전에 실행됩니다". 나는 페이지가 구문 분석되지 않았다면 페이지의 본문 스크립트 태그에있는 스크립트가 실행되지 않을 것이라고 생각했을 것이다. 그러나 이것은 내가 보는 행동이 아니다. 대신, 내 시작 스크립트가로드되기 전에 게시 응답에서 반환 된 페이지의 모든 스크립트가 실행되는 것처럼 보입니다.
테스트하려면 콘솔 location.href에 기록하고 console.log로 window.alert를 바꾸는 간단한 시작 스크립트가 있어야합니다.
주입 된 시작 스크립트 :
console.log(window.location.href + "loaded killAlert.js") ;
window.alert=function(str) { console.log(str) ; }
테스트 웹 페이지 :
<html><head></head>
<body>
<script>alert("this is an alert message") ;</script>
nothing to see here... move along.
</body>
</html>
무슨 일 내장 된 스크립트 테스트 페이지를로드 할 때 아무것도가 기록되기 전에 경고가 실행하는 것입니다 console.log.
내 질문 -
- 실제로 스크립트 시작합니까 호출 얻을?
- 을 실행할 수있는 방법이 있습니까? 페이지의 스크립트가 있습니까?
이것은 상당히 직설적이어야하지만 지금까지 설명서를 읽거나 검색하거나 실험을 통해 문제를 해결할 수있는 방법을 찾을 수 없었습니다. 나는 다른 누군가가 비슷한 것을 해결하기를 바라고 있습니다.
@Holybreath 제안에 감사드립니다. 나는 이미 그것을 시도했었다. 그러나 아무런 이점도 없다는 결론에 도달했다. 스크립트가 호출되고 있지만 페이지 스크립트가 실행 된 후 (OP에서 지적한 것처럼 Apple의 설명서에 위배됩니다). – Xcapee