[英]Javascript function not being called from html page
我有一个javascript文件,该文件在首次运行时已加载到页面上,该文件具有多种功能。 无论如何,我试图从html页面调用这些函数,但是根本没有调用它。 我不明白为什么。 这是我所做的。
HTML部分
<?php /* SCRIPT AREA START */ ob_start(); ?>
<script src="<?php ECHO SITE_ROOT; ?>assets/js/client.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
client.displayMessage();
});
</script>
<?php /* SCRIPT AREA END */ $data["scripts"] = ob_get_clean(); ?>
这是javascript部分
var client = (function(){
...
var displayMessage = function(){
alert("Hello");
//stage.showErrorModal("Hello people", "Yeah");
},
....
}
编辑:
var client = (function(){
var socket, connected = false, typingArray = Array(), callWaitting, calling, callSound = null, onlineFriends = Array();
init = function() {
initializeSocketConnection();
},
initializeSocketConnection = function(){
socket = io.connect(window.config.socket_server);
socket.on('connect', onSocketConnect);
socket.on('ready', onSocketReady);
socket.on('inbox', sentMobileEvent);
},
onSocketConnect = function(){
connected = true;
},
onSocketReady = function(){
socket.emit('login', window.config.username, window.config.session_id, window.config.user_id, onLoginResponse);
},
displayMessage = function(){
alert("Hello");
//stage.showErrorModal("Hello people", "Yeah");
},
inbox=function(user_id){
socket.emit("inbox", user_id);
};
return {
init: init,
displayMessage: displayMessage,
}
})();
client.init();
PHP代码最后一行的ob_get_clean()
函数将:
因此, ob_start()
和ob_get_clean()
之间的所有内容都将存储在$data["scripts"]
并清除 ,这意味着没有任何内容将发送到浏览器。
在ob_get_clean()
之后添加以下行,会将缓冲和清除的内容发送到浏览器:
<?
echo $data["scripts"];
?>
但是,如果您打算同时显示和备份<SCRIPT>
内容,则可以改用ob_get_contents()
。
编辑:
现在,在提供了完整的JavaScript源代码之后,我发现了一些语法错误。
您的某些功能以结束,
应该为;
。
例如, init
函数(和其他函数)可以像这样固定:
init = function() {
initializeSocketConnection();
}; // ends with ;
您可以将var displayMessage
更改为this.displayMessage
,然后尝试。
var client = (function(){
...
this.displayMessage = function(){
alert("Hello");
//stage.showErrorModal("Hello people", "Yeah");
},
....
}
并确保实例化客户端。
当使用client.displayMessage()时,必须确保两件事:1.client是对象或数组。 2.client有一个名为displayMessage的属性,它是一个函数。 显然,“ var displayMessage”表示在函数中声明变量,而不是属性。 因此“ client.displayMessage是未定义的”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.