
No.2ベストアンサー
- 回答日時:
当方、本日手が空いたので色々試行錯誤してみましたが
javascriptを動的に呼び出すのは少し難しいようですな。
[test.js]
function test() { alert('moge'); }
というファイルがあるとして、
[例1]
<input type='button' value='go' onclick='on()' />
<script type='text/javascript'><!--
function on(){
document.write('<script type="text/javascript" src="./test.js"></script>');
}
// --></script>
これだとグローバルスコープでtest.jsの定義が使えるのですが、
画面が再描画されるため意図した動作をせず。
再描画させず、意図させた場所のみ更新させHTMLparseを行わせるという挙動ってできるのですかねぇ。
[例2]
<input type='button' value='go' onclick='on()' />
<script type='text/javascript'><!--
var jsStr = "";
function on(){
getCode();
eval(jsStr);
test();
}
function getXMLHTTPObj(){
try{
return new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
(snip.)
}
}
function getCode(){
// make instanse
var reqSend = getXMLHTTPObj();
// get instanse
if(reqSend){
reqSend.onreadystatechange = function(){
if(reqSend.readyState == 4 ){
jsStr = reqSend.responseText;
}
}
reqSend.open('POST', "./test.js", false);
reqSend.setRequestHeader('content-type', "application/x-www-form-urlencoded;charset=UTF-8;");
reqSend.send();
}
}
// --></script>
XMLHTTPで呼んでevalしてみる。
使えなくもないですが・・・・
最初から<script>で呼べよという話に。
[例3]
<script src="common1.js"></script>
<script src="common2.js"></script>
<script src="common3.js"></script>
<script src="test.js"></script>(typeはsnip)
<input type="button" onclick='test()' />
スタンダード。
必要な奴は必要なときに逐次呼ぶのが普通。
外部読み込みはprototype.jsとかにありそうな気はしますけどね。
使ったことないですが。
No.3
- 回答日時:
test.jsの中身を関数に入れて普通に呼び出すのを推奨。
test.js
alert('test');
となっていたら以下の様に書き換え
function Click(){
alert('test');
}
<input type="button" value="click" onclick="Click();">
以下は、ご参考まで。
test.jsは関数に入れない状態で作ってください
function Click(){
var s=document.createElement('script');
s.type='text/javascript';
s.src='test.js';
var hd=document.getElementsByTagName('head');
hd=hd.item?hd.item(0)||hd[0]:hd[0];
hd.appendChild(s);
}
<input type="button" value="click" onclick="Click();">
基本はJSONP(DOM?)のそれと同じです。
headに入れてますが、document.bodyに入れても機能します。(エラーチェック等つけてください)
.jsファイルに対してPOSTメソッドを受け付けないサーバー(サービス/会社)があるので、GETの方がいいかもです。
同期接続にするなら、readyStateをチェックしなくても
ActiveXObject、XMLHttpRequestともに、send()した直後からresponseTextやresponseXMLを使用できます。
if(reqSend){
reqSend.open('GET', "./test.js", false);
reqSend.send();
jsStr = reqSend.responseText;
}
No.1
- 回答日時:
<input type="button" value="サンプル" onClick="Sample()">
これで出来ると思います
「Sample()」
この部分を「test.js」で作成した関数に置き換えれば実行できると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このスクリプトを説明してください
-
JavaScriptのエラー ( 関数の...
-
cssにjavascriptを入れる?呼び...
-
javascriptファイルは1つに統...
-
javascriptのalertで文字化けが...
-
複数の外部jsをランダム表示さ...
-
エラー行の行数の不思議
-
呼出したjsファイル内で他jsフ...
-
<a href="#" …>の意味を教えて...
-
POSTで<a hrefを送る方法について
-
function の return 値を表示し...
-
親ウインドウの判別
-
検索フォームでの結果を別窓に...
-
<DIV id=""></DIV>勘でいれたら...
-
<head>と<body>どっちに入れる...
-
URLを引数とし、フレーム間で渡...
-
同意を求めて、次のページに進...
-
角丸うまくいきません
-
適切なページ分けのループを教...
-
window.openでフルスクリーン表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cssにjavascriptを入れる?呼び...
-
javascriptとApacheの設定
-
プルダウンメニューを別ファイ...
-
レンタルサーバーでjavascript...
-
初心者です。あまりに初歩的な...
-
JavascriptとJqueryを混在し記述
-
Dreamweaver で 外部JSを読み込...
-
JavaScriptのエラー ( 関数の...
-
複数のJavascriptを1つのscrip...
-
javascriptファイルは1つに統...
-
別ファイルのfunctionの読み込み方
-
JavaScriptの外部ファイル読み込み
-
processing
-
ホームディレクトリを示すチル...
-
【Google Apps Script】「ライ...
-
エラー行の行数の不思議
-
<script src="">読み込まない
-
ひとつの外部ファイルに複数の...
-
静的と動的なJavascriptの同時...
-
外部.jsの内容を一部置き換えて...
おすすめ情報