JS는 현재 스크립트 file_javascript 팁의 절대 경로를 얻습니다.
May 16, 2016 pm 03:12 PM모듈 로더를 작성할 때 현재 스크립트 파일의 절대 경로를 기본 경로로 얻는 것이 필수 단계입니다. 이 문제에 대해 함께 논의해 봅시다!
1. 주요 브라우저 구현 방법
[a]. 크롬 및 FF
초간단 문장이면 충분해요!
var getCurrAbsPath = function(){ return document.currentScript.src; };
로그인 후 복사
여기에서는 현재 실행 중인 스크립트 요소를 반환하는 document.currentScript 개체가 사용되며, 스크립트 요소의 src 속성을 호출하여 스크립트 파일의 절대 경로를 얻을 수 있습니다.
[b] IE10+, Safari 및 Opera9
Error 객체의 stack 속성(IE10+), sourceURL 속성(Safari), stacktrace 속성(Opera9)을 이용하여 절대 경로를 추출합니다
var getCurrAbsPath = function(){ var a = {}, stack; try{ a.b(); } catch(e){ stack = e.stack || e.sourceURL || e.stacktrace; } var rExtractUri = /(?:http|https|file):\/\/.*?\/.+?.js/, absPath = rExtractUri.exec(stack); return absPath[0] || ''; };
로그인 후 복사
[C] IE5.5~9
문서의 스크립트 태그를 탐색합니다
var getCurrAbsPath = function(){ var scripts = document.scripts; var isLt8 = ('' + document.querySelector).indexOf('[native code]') === -1; for (var i = scripts.length - 1, script; script = scripts[i--];){ if (script.readyState === 'interative'){ return isLt8 ? script.getAttribute('src', 4) : script.src; } } };
로그인 후 복사
2. 관련 지식 소개
IE5.5~9에서 스크립트의 ReadyState는 스크립트 요소의 상태를 나타내며 다음과 같은 상태 값을 갖습니다.초기화되지 않음: 초기화되지 않음
로드 중: 로드 중
로드됨: 로드 완료
대화형: 실행
완료: 실행 완료
onreadystatechange 이벤트를 구독하면 스크립트 요소 상태 변경을 들을 수 있습니다. 하지만 로드된 상태와 완료된 상태는 불확실한 순서로 나타나며 그 중 하나만 나타날 수 있으므로, 스크립트 요소를 동적으로 추가할 때는 먼저 src 속성을 설정한 후 해당 스크립트 요소를 DOM 트리에 추가하는 것이 좋습니다. , 로드 및 완료 상태 중 하나만 표시되므로(요청할 때마다 표시됨) 모니터링하기가 더 쉽습니다.
3. IE와 FF에서의 또 다른 방법 window.onerror 이벤트를 구독하면 이벤트 핸들러 함수가 msg, url 및 num이라는 세 가지 매개변수를 허용합니다. 여기의 URL은 현재 스크립트의 절대 경로입니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD

인기 기사
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7302
9


자바 튜토리얼
1622
14


Cakephp 튜토리얼
1342
46


라라벨 튜토리얼
1259
25


PHP 튜토리얼
1207
29

