人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のソースで,なるべくならevalは使いたくありません。
evalなら動作確認しています。
他に方法は有るのでしょうか?
<script type="text/javascript">
var id = "test1";
var dc = "ok";
var aa = "1";
var bb = "3";
function test_count(id,dc,aa,bb){
var ok = id + "_"+dc+"('"+aa+"','"+bb+"')";
// eval(id + "_"+dc+"('"+aa+"','"+bb+"')")
alert(ok)
return ok;
}
function test1_ok(id,dc){
alert(id) //この結果、1が表示されればOK
}

</script>
</head>
<body onload="test_count(id,dc,aa,bb);">

●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:AA BB DC ソース
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● じゃっくそにっく
●27ポイント

JavaScriptは、関数オブジェクトと連想配列が使えるので、

こうすれば可能です。

<html>
<head>
<script type="text/javascript">
var id = "test1";
var dc = "ok";
var aa = "1";
var bb = "3";
// 関数を格納する連想配列
var funcObj = new Array();
// 文字列で指定できる関数連想配列への関数の追加
funcObj.test1_ok = function(id,dc){
alert(id) //この結果、1が表示されればOK
}

function test_count(id,dc,aa,bb)
{
funcObj[id+"_"+dc](aa,bb);
}

</script>
</head>
<body onload="test_count(id,dc,aa,bb);">
<body>
</html>

詳しい解説はこちらに書きます。

JavaScript/関数名を文字列で指定して動的に呼び出す機構(evalを使わず) - ジャックズラボ jack's Lab

◎質問者からの返答

出来ましたw

大変ありがとうございます。

後、もうひとつ聞きたいのですが、

ここで質問してもいいですか?

<body onload="test_count(id,dc,aa,bb);">時に

クライアント側(ブラウザで開いている方)が

CPU負荷が高くなるのですが

どうしたらいいかわかりますか?


2 ● susie-t
●40ポイント

実行関数がグローバル宣言であるなら、以下で可能です。

<script type="text/javascript">
var id = "test1";
var dc = "ok";
var aa = "1";
var bb = "3";
function test_count(id,dc,aa,bb){
 window[id + "_" + dc](aa, bb);
}
function test1_ok(id,dc){
alert(id); //この結果、1が表示されればOK
}
test_count(id, dc, aa, bb);
</script>

グローバル宣言なら、windowオブジェクトのメンバになるため、window["関数名"]();で呼び出すことができます。

◎質問者からの返答

こちらのほうが負荷が若干少ないですね。

ありがとうございます。


3 ● じゃっくそにっく
●13ポイント

>後、もうひとつ聞きたいのですが、

>ここで質問してもいいですか?

><body onload="test_count(id,dc,aa,bb);">時に

>クライアント側(ブラウザで開いている方)が

>CPU負荷が高くなるのですが

>どうしたらいいかわかりますか?

時間待ち処理の中でfor/while等の処理ループを使った

待ち方をしてるとCPU負荷が高くなります、

(これにはタイマーを使った予防法があります。)

が、

質問文内では、待ち処理と呼び出しの状態遷移の部分の

処理コードがないので、具体的なコードを出されたほうが

回答しやすいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ