Funktion aus anderer .js Datei an einem Objekt aufrufen
hoffmeij
- javascript
Hallo,
Ich bin gerade dabei ein bisschen mit Javascript rumzuspielen um einen Clienten zu schreiben und habe dafür ein Beispiel geladen. Es handelt sich um 2 .js Dateien und innerhalb der einen wird an einem Objekt eine Funktion der anderen aufgerufen. Es kommt dann jedoch immer folgender Fehler :
[16:28:26.941] this.createDefaultResult is not a function @ http://localhost:8080/websockettemplate/res/js/TemplateServerPlugin.js:24
Der Code sieht folgendermaßen aus :
TemplateServerPlugin.js :
jws.TemplateServerPlugin = {
requestServerTime: function( aOptions ) {
alert("requestServerTime wird ausgeführt");
var lRes = this.createDefaultResult();
if( this.isConnected() ) {
var lToken = {
ns: jws.TemplateServerPlugin.NS,
type: "requestServerTime"
};
this.sendToken( lToken, aOptions );
} else {
lRes.code = -1;
lRes.localeKey = "jws.jsc.res.notConnected";
lRes.msg = "Not connected.";
}
return lRes;
}
}
JWebSocket.js :
var jws = {
//:const:*:VERSION:String:1.0b5 (nightly build 20105)
//:d:en:Version of the jWebSocket JavaScript Client
VERSION: "1.0b5 (nightly build 20105)",
//:const:*:NS_BASE:String:org.jwebsocket
//:d:en:Base namespace
NS_BASE: "org.jwebsocket",
NS_SYSTEM: "org.jwebsocket.plugins.system",
MSG_WS_NOT_SUPPORTED:
"Unfortunately your browser does neither natively support WebSockets\n" +
"nor you have the Adobe Flash-PlugIn 10+ installed.\n" +
"Please download the last recent Adobe Flash Player at http://get.adobe.com/flashplayer.",
// some namespace global constants
//:const:*:CUR_TOKEN_ID:Integer:0
//:d:en:Current token id, incremented per token exchange to assign results.
CUR_TOKEN_ID: 0,
//:const:*:JWS_SERVER_SCHEMA:String:ws
//:d:en:Default schema, [tt]ws[/tt] for un-secured WebSocket-Connections.
JWS_SERVER_SCHEMA: "ws",
//:const:*:JWS_SERVER_SSL_SCHEMA:String:wss
.
.
.
.
.
//:m:*:createDefaultResult
//:d:en:Creates a response token with [tt]code = 0[/tt] and _
//:d:en:[tt]msg = "Ok"[/tt]. It automatically increases the TOKEN_ID _
//:d:en:to obtain a unique serial id for the next request.
//:a:en::::none
//:r:*:::void:none
createDefaultResult: function() {
return{
code: 0,
msg: "Ok",
localeKey: "jws.jsc.res.Ok",
args: null,
tid: jws.CUR_TOKEN_ID
};
},
.
.
.
.
});
Ich bin noch recht unerfahren in Javascript. Ich habe aber verstanden, dass durch this sozusagen der owner der Funktion übergeben wird. Ich weiss nur leider nicht wer jetzt genau der Owner sein soll. Meine HTML Datei dazu sieht folgendermaßen aus :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Template Websocket Service</TITLE>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<script src="res/js/jWebSocket.js"></script>
<script src="res/js/TemplateServerPlugin.js"></script>
</HEAD>
<H3>Template Service startet....</H3>
<BODY>
<form>
<input type=text name="aOption">
<input type=button value="Request server time" onClick="jws.TemplateServerPlugin.requestServerTime(aOption)">
</form>
</Body>
<p></p>
</BODY>
</HTML>
Aoption habe ich noch gar nicht wirklich durchschaut aber bis dahin komme ich ja auch gar nicht. Er bricht ja davor ab. Weiss jemand was mit dem this genau übergeben wird und warum er die Funktion in der anderen Datei nicht aufrufen kann?