페이지의 모든 링크를 http : //에서 https : // 으로 다시 작성해야하는 스크립트를 작성 중입니다. 클라이언트 쪽에서 수행해야하며 페이지에서 실행되어야합니다. 나는 통제하지 않는다.동적 페이지에서 javascript로 링크 다시 작성하기
실행 환경 : 최근 Chrome에만 해당되며 Chrome 확장 프로그램에 삽입 된 스크립트이므로 브라우저 간 호환성에 대한 걱정은 없습니다. 주입은 document_start
(DOM이로드되기 전)에 발생합니다.
document.addEventListener("DOMContentLoaded", rewriteHTTPS, false);
function rewriteHTTPS() {
var links = document.links;
for(var i in links){
links[i].href = links[i].href.replace(/http:/, "https:");
}
}
불행하게도, 나는 페이지가 너무 많은 링크가이 이벤트가 발생 된 후 추가, 동적 것을 깨달았다 :
내 첫 번째 시도는 DOMContentLoaded
을 감시하고 document.links 반복하는 것이 었습니다.
그래서 질문은 다음과 같습니다. 동적 DOM이있는 페이지에서 모든 새롭고 수정 된 링크를 캡처하는 가장 좋은 방법은 무엇입니까?
이것이 서버 측에서 수행되지 않는 이유에 대한 * 정말 * 좋은 이유가 있습니까? 사용자가 자바 스크립트를 끄면 어떻게 될까요? –
외국 사이트와 상호 작용하기 위해 브라우저 확장 프로그램을 쓰고 있습니다. 분명히, 내 사용자가 그것을 사용하는 경우, 그들은 자바 스크립트를 사용할 수 있습니다. – Xan
아, 이해가 되네 :) –