> 웹 프론트엔드 > JS 튜토리얼 > JS 파일 전송 및 처리 기술 분석_javascript 기술

JS 파일 전송 및 처리 기술 분석_javascript 기술

WBOY
풀어 주다: 2016-05-16 18:27:25
원래의
1050명이 탐색했습니다.

해결 방법:

1. 먼저 현재 JS 파일 의 SRC 속성을 가져옵니다. 여기에 약간의 트릭이 있습니다. 현재 페이지의 마지막 스크립트 태그 콘텐츠만 가져오면 됩니다.
왜요? ? JS는 순차적으로 파싱되기 때문에 현재 JS 스크립트를 파싱할 때 다음 js는 아직 파싱되지 않았으므로 당연히 마지막 스크립트로 간주됩니다. 또한, 이 방법으로 얻는 또 다른 이점이 있습니다. 동일한 파일을 여러 번 참조하고 다른 매개변수를 전달할 수 있으므로 js 파일의 다른 매개변수에 따라 다른 처리를 수행할 수 있다는 점입니다. 이는 매우 영리합니다! 그것은 단순히 동적 언어입니다.
코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

var scripts=document.getElementsByTagName ("script");
var curJS=scripts[scripts.length-1]; //curJS는 현재 js 파일입니다.

이것은 쉽습니다. curJS.src를 통해 전체 경로 내용(매개변수 포함)을 얻을 수 있습니다.

2. 다음은 파싱 매개변수 내용입니다. 파싱 과정은 매우 간단합니다.
그러나 특별한 경우를 처리해야 합니다. 매개변수가 여러 번 전달되는 경우 전달된 각 값을 저장하기 위해 매개변수 값을 배열로 변환해야 합니다.

전체 테스트 스크립트는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

var getArgs=(function(){
var sc=document.getElementsByTagName('script');
var paramsArr=sc[sc.length-1].src.split ('?')[1].split('&');
var args={},argsStr=[],param,t,name,value
for(var i=0,len= paramsArr.length;iparam=paramsArr[i].split('=')
name=param[0],value=param[1]
if( typeof args[name]== "undefine"){ //매개변수가 아직 존재하지 않습니다
args[name]=value;
}else if(typeof args[name]=="string"){ / /매개변수가 이미 존재하는 경우 배열로 저장합니다.
args[name]=[args[name]]
args[name].push(value)
}else{ //이미 배열입니다.
args[name].push(value) ;
}
}
/*실제 애플리케이션에서는 다음 showArg 및 args.toString을 삭제할 수 있습니다. 함수 getArgs*/
var showArg=function(x) { //다른 데이터의 표시 모드를 변환
if(typeof(x)=="string"&&!/d /.test(x)) return "'" x "'"; //문자열
if(x instanceof Array) return "[" x ​​​​"]" //배열
return x; //json 형식으로 어셈블
args.toString=function(){
for(var i in args) argsStr.push(i ':' showArg(args[i]))
return '{ ' argsStr.join(',') '}';
}
return function(){return args;} //획득한 모든 매개변수를 json 형식으로 반환
})(); 🎜>alert(getArgs());
alert("username :" getArgs()["username"])




테스트 예제의 HTML 소스 코드:



코드 복사< head>
새 문서





< ;script type="text/javascript" src="test.js?id=5&username= ajaxbbs&id=7&uid=253">






스크립트 하우스 데모 코드
http: //demo.jb51.net/js/2011/jscc/
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿