プロが教える店舗&オフィスのセキュリティ対策術

お世話になっています、ご質問があります。
以下の場合
--hogeA.html--
<html>
<head>
<script type="text/javascript" src="./**/hogeB.js"></script>
</head>
<body onload="javascript:hoge.init()">
<input type="text" name="hogehoge" value="">
</dody>
</html>
--hogeB.js--
hoge = {
init : function(){
var BodyElement = document.getElementsByTagName('INPUT');
BodyElement.onBlur = this.setOnBlurAction;
},
setOnBlurAction : function(value){
****(省略)****
}
}

上記の場合に、onBlurイベントハンドラ関数を生成し、
画面上でonBlurイベント時にsetOnBlurActionを実行させる予定です。

引数のある関数の場合、動的にイベントハンドラ関数を生成する際はBodyElement.onBlur = this.setOnBlurAction;
では駄目な気が致しますが、どうすれば良いでしょうか。

どなたかご教授願います。

A 回答 (2件)

エレメント.ハンドラ = function(){関数名('引数')}


とか、
エレメント.ハンドラ = Function('関数名("'+引数+'")');
とか、でしょうか?
    • good
    • 0
この回答へのお礼

皆様いろいろな回答ありがとうございました。
引数ありで正常に作成する事ができました。

お礼日時:2008/05/22 22:22

>引数のある関数



この場合、どのようなものを引数として渡そうとしてるのでしょうか?
自分自信に関する物はthis経由で参照できるので、引数渡しする必要は
ないとおもいますけど・・・

//hoge.htm
<script src="hoge.js"></script>
<input type="text" name="hoge1">
<input type="text" name="hoge2">
<input type="text" name="hoge3">

window.onload=function(){hoge.init()}
hoge = {
init : function(){
var BodyElements = document.getElementsByTagName('INPUT');
for(i in BodyElements){
BodyElement=BodyElements[i];
BodyElement.onblur = this.setOnBlurAction;
}
},
setOnBlurAction :function(){
alert(this.value);
}
}

この回答への補足

回答ありがとうございます。
実際に試してみていますが、
onBlurイベントハンドラに暗黙的に関数は入っているのを
ブックマークレットで確認しましたが、
実際にUI側で操作してみても関数が実行されていないようです。
うーむ。。。困った;

補足日時:2008/05/17 22:04
    • good
    • 0
この回答へのお礼

皆様いろいろな回答ありがとうございました。
引数ありで正常に作成する事ができました。

お礼日時:2008/05/22 22:23

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