ホームページ >ウェブフロントエンド >jsチュートリアル >JSファイル転送・処理スキル 分析_JavaScriptスキル

JSファイル転送・処理スキル 分析_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:27:251041ブラウズ

解決策:

1. まず、現在の JS ファイル の SRC 属性を取得します。ここでは、現在のページの最後のスクリプト タグのコンテンツを取得するだけで済みます。
なぜですか? ? JS は順番に解析されるため、現在の JS スクリプトが解析されると、次の JS はまだ解析されていないため、当然最後のスクリプトとみなされます。さらに、この方法で取得することにはもう 1 つの利点があります。同じファイルを複数回参照し、異なるパラメータを渡すことができるため、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]; typeof args[name]== "unknown"){ //パラメータはまだ存在しません
args[name]=value;
}else if(typeof args[name]=="string"){ / /パラメータはすでに存在します。配列として保存します
args[name]=[args[name]]
args[name].push(value); //すでに配列です
args[name].push(value) ;
}
}
/*実際のアプリケーションでは、次の showArg と args.toString を削除できます。これは、によって返される内容をテストするためのものです。 the function getArgs*/
var showArg=function(x) { //異なるデータの表示モードを変換
if(typeof(x)=="string"&&!/d /.test(x)) return "'" x "'"; //String
if(x instanceof Array) return "[" x "]" //Array
return x; //Number
}
//json 形式にアセンブル
args.toString=function(){
for(var i in args) argsStr.push(i ':' showArg(args[i])); ' argsStr.join(',') '}';
}
return function(){return args;} //取得したパラメータをすべて json 形式で返します
})(); 🎜>alert(getArgs());
alert("username :" getArgs()["username"]);




テスト例の HTML ソース コード:



コードをコピー
コードは次のとおりです:
新しいドキュメント





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






スクリプト ハウスのデモ コード
http: //demo.jb51.net/js/2011/jscc/
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。