この質問に答えるために jQuery を使用します。最初に、次の形式の includedScripts.txt という名前の外部 .txt ファイルがあります。
NameOfFile~pathToJSFile
例えば:
nowa_postac~nowaPostAc.js
nowaPostAc.js はScriptsというサブフォルダーに存在することに注意してください。
次に、jQuery をロードします (これを行う方法を知っていると仮定します。そうでない場合はhttp://www.learningjquery.com/2006/09/introducing-document-ready#more-5を参照してください) 。 jQueryファイルには次のものがあります:
/*
*
* LOAD ADDITIONAL SCRIPTS
*/
jQuery.ajax(
{
url: 'Scripts/includedScripts.txt'
, timeout: 5000
, success:
function (data) {
myArray = data.split(/\n/);
for (var i = 0; i < myArray.length; i++) {
theContents = myArray[i].split("~");
goodToGo = false;
theFileName = "";
if (theContents.length == 1) {
goodToGo = true;
theFileName = theContents[0];
}
else {
for (var t = 0; t < theContents.length; t++) {
if (theContents[t].indexOf(".") != -1) {
theFileName = theContents[t];
}
else if (location.pathname.indexOf(theContents[t]) != -1) {
goodToGo = true;
}
}
}
if (goodToGo == true) {
pathToScript = (theFileName.indexOf("..") >= 0) ? theFileName.replace("..", "") : "Scripts/" + theFileName;
script = document.createElement('script');
script.type = 'text/javascript';
script.src = pathToScript;
if (jQuery("#ctl01").length > 0) {
jQuery("#ctl01").append(script);
}
else if (jQuery(".page").length > 0) {
jQuery(".page").append(script);
}
}
}
}
, error:
function (xhr, textStatus, errorThrown) {
//alert("Could not load additional modules, please alert IT");
//make a log entry...
}
, async: false
}); // load additional scripts
おそらく次の行を編集する必要があります。
if (jQuery("#ctl01").length > 0) {
jQuery("#ctl01").append(script);
}
else if (jQuery(".page").length > 0) {
jQuery(".page").append(script);
}
おそらく次のようなものを読む:
if (jQuery("body").length > 0) {
jQuery("body").append(script);
}
else if (jQuery("SomeOtherDivOrClass").length > 0) {
jQuery("SomeOtherDivOrClass").append(script);
}
このスクリプトが (includedScripts.txt ファイルと連携して) 行うことは、ページに基づいてロードする別のスクリプトを指定できるようにすることです。もちろん、これは、すべてのページに読み込まれる単一のスクリプトがあることを前提としています。次に例を示します。
<script type="text/javascript"> src="Scripts/customeJQuery.js"></script>
これには上記のコードが含まれます (追加スクリプトの読み込み)。
これは私にとってはうまくいきます。微調整を行う必要があります。うまくいったら教えてください。