アプリ版:「スタンプのみでお礼する」機能のリリースについて

外部化したjavascriptを用いるのですが、
条件分岐によってどの外部スクリプトを読み込むかを切り替えることは可能でしょうか?

そういった表記方法は見たことが無いのですが・・・

A 回答 (2件)

一応可能の様です。


DOMを使ってheadタグにscriptタグを追加してあげればOKです。
以下は外部スクリプトを動的に読み込むサンプルです。

-- HTMLファイル --
<?xml version="1.0" encoding="shift_jis" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<script type="text/javascript">
function loadExternalJS(scriptName){
var scriptElement = document.createElement("script");
scriptElement.setAttribute("type", "text/javascript");
scriptElement.setAttribute("src", scriptName);

document.getElementsByTagName("head")[0].appendChild(scriptElement);
}
</script>
<title>Sample</title>
</head>

<body>
<input type="button" onclick="loadExternalJS('a.js');" value="a.jsを読み込む" /><br/>
<input type="button" onclick="loadExternalJS('b.js');" value="b.jsを読み込む" /><br/>
<input type="button" onclick="func();" value="func()を呼び出し" />
</body>
</html>

-- a.js --
function func(){
alert("これはa.jsのfunc()です。");
}

-- b.js --
function func(){
alert("これはb.jsのfunc()です。");
}

動作はIE7とFirefox2.0で確認していますが、他のブラウザで動く保証はないです。
※Firefox2ではappendChildしてからJSファイルの内容が反映されるまで多少時間がかかるようです。
    • good
    • 0

>条件分岐によってどの外部スクリプトを読み込むかを切り替える



のも意味があるとは思いますが、共通のスクリプトを読んでおいて
条件分岐によって適用部分を変えるほうが効率的かもしれませんね
ライブラリだって必要な部分しか読まないってわけではないですよね?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!