在我的jsp页面中,我显示了包含文本区域、文本字段和发送按钮的div,只有当我得到sessionId!=“空”。
此外,我有一个确认警报框,用于关闭窗口注销会话。。。
但是,如果我试图检索setsionId、userId等的值,我每次都会收到相同的警报...或者在按start Chat或发送按钮时发送消息以切断...在我的Jsp页面中,
<div id="login">
<form id="indexForm" name="indexForm" action="LoginAction" method="post">
<table>
<tr>
<td id="fname" class="fontStyle">First Name :</td>
<td id="fvalue"><input type="text" id="firstname"
name="firstname" /></td>
<td id="lname" class="fontStyle">Last Name :</td>
<td id="lvalue"><input type="text" id="lastname" name="lastname" /></td>
</tr>
<tr>
<td colspan="4" id="err1" style="color: red"> </td>
</tr>
<tr>
<td id="email_id" class="fontStyle">Email Id :</td>
<td><input type="text" id="email" name="email" /></td>
<td id="sub" class="fontStyle">Subject
:</td>
<td><input type="text" id="subject" name="subject" /></td>
</tr>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td colspan="4" id="err2" style="color: red"> </td>
</tr>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td></td>
<td>
<center><a id="button" href="javascript:getValues();">Start
chat</a></center>
</td>
<td>
<center><a id="button" href="javascript:logout();">Stop
chat</a></center>
</td>
<td></td>
</tr>
</table>
</form>
</div>
<div style="display: none;" id="div">
<div><textarea id="textarea" rows="10"></textarea></div>
<div>
<table>
<tr>
<td id="msg" class="fontStyle">message :</td>
<td id="msgvalue"><input size="40" type="text" id="message"
onkeydown="enterKey()" /></td>
<td style="width: 5%;"></td>
<td><!-- <input type="button" value="send" onclick="sendMessage()" /> -->
<a id="button3" href="javascript:sendMessage();">Send</a></td>
</tr>
</table>
</div>
</div>
在我的JavaScript中,
window.onbeforeunload = function () {
return "Are you Sure want to LOGOUT the session ?";
};
window.onunload = function () {
if((sessionId != null)&&(sessionId!="null")&& (sessionId != ""))
logout();
};
function sendMessage(){
message = document.getElementById("message").value;
document.getElementById("message").innerText = "";
try
{
xmlhttp.onreadystatechange=function()
{
//alert("Status : "+xmlhttp.status+"\nreadyState : "+xmlhttp.readyState);
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var checkMsg = decodeURIComponent(xmlhttp.responseText.toString());
if(checkMsg != "null" && checkMsg != null){
//document.getElementById("textarea").innerHTML += checkMsg;
if(textarea.value == "")
textarea.value = checkMsg;
else
textarea.value += "\n"+ checkMsg ;
}
}
};
xmlhttp.open("POST","SendMessageAction?sessionId="+sessionId+"&userId="+userId+"&securekey="+secureKey+"&message="+encodeURIComponent(message)+"&sid"+Math.random(),true);
xmlhttp.send();
}
catch(err)
{
alert(err.description);
}
}
在我的Servlet中,
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
msg = request.getParameter("message");
//System.out.println("msg -----> : "+msg);
seckey = request.getParameter("securekey");
uid = request.getParameter("userId");
sessionId = request.getParameter("sessionId");
//counter =Integer.parseInt(request.getParameter("counter"));
counter = 1;
protocol = ApplicationInfo.flexProtocol;
message = new SendMessage();
message.send(msg, seckey, uid, sessionId, counter, protocol);
CustomerInfo customer = ApplicationInfo.customerDetails.get(uid);
out.print(customer.getMessage());
//System.out.println("msgDecoded -----> : "+msg);
}
帮帮我...我不需要每次都收到警报,除了我正在关闭浏览窗口...
解决办法是,
我在java脚本中为事件使用锚定标记,而不是按钮。所以“window.onbeforeunload”将事件视为一个新地址。现在我把锚定标签改成了按钮,效果很好。。
执行以下操作之一时,会触发事件onbeforeunload
。
Close the current window.
Navigate to another location by entering a new address or selecting a Favorite.
Click an anchor that refers to another document.
Invoke the anchor.click method.
Invoke the document.write method.
Invoke the document.close method.
Invoke the window.close method.
Invoke the window.navigate or NavigateAndFind method.
Invoke the location.replace method.
Invoke the location.reload method.
Specify a new value for the location.href property.
Submit a form to the address specified in the ACTION attribute via the INPUT type=submit control, or invoke the form.submit method.
Invoke the window.open method, providing the possible value _self for the window name.
Invoke the document.open method.
Click the Back, Forward, Refresh, or Home button.
onbeforeunload的MSDN描述
我一直在努力通过Smack和Openfire服务器与XMPP聊天。我的问题如下: 每当一个用户向另一个用户发送消息时,该消息就会在另一个用户处正确接收。但是任何回复都不会出现在第一条消息的发件人处。因此,用户1成功地发送给用户2。然后,用户2无法向用户1发送任何回复。另一方面,如果我重新启动并让用户再次登录,则用户2可以发送给用户1,但反之亦然。 我想说的是,只有聊天的发起者才能发送消息,接收者不
E/AndroidRuntime:致命异常:主进程:com。维内特。计算器,PID:29435 java。lang.NullPointerException:尝试调用虚拟方法的布尔java。朗,布尔<代码>在此输入代码booleanValue()”在com的空对象引用上。维内特。计算器主要活动16美元。android上的onClick(MainActivity.java:177)。看法看法andr
我正在学习如何使用parse创建聊天客户端的教程。链接:https://github.com/codepath/android_guides/wiki/Building-Simple-Chat-Client-with-Parse当我在应用程序中按下发送时,它会说“parseapp”已经停止。我是一名新程序员,不确定为什么它不起作用。我的代码中没有错误。尽管这一定与按下按钮的时间有关,或者有一些变量
问题内容: 下面的代码正确返回该单元格: 但是在表视图中查找indexpath会崩溃: 我尝试了另一种方法,但是没有成功: 问题答案: 我不知道是否有简单的方法可以做到这一点。( 编辑: 实际上有。请查看@mustafa的第二个解决方案。)一种解决方法是将按钮的标签设置为in ,然后可以仅访问按钮的标签以找出按钮所属的行。 警告: 此解决方法很脆弱。如果您允许在不调用的情况下从表中添加或删除行,则
问题内容: 在以下SSCCE中, 我有一个字符串,其中包含3 秒的HTML 。 我为除第一个之外的所有s 添加了一个属性。 我添加一个按钮,所有的小号除了最后一个,并添加一个JS 事件侦听器,应该改变当前‘样式属性s到(当前的传递给JS功能属性),并在未来的(这是还传递给JS函数)样式属性 我在最后提交一个按钮。我没有为此按钮编写“ 事件” 或“事件监听器” 的属性,因为现在这不是问题。 我打印d
如何在聊天客户端发送媒体消息?我使用的是JS SDK,基于教程https://www.twilio.com/docs/api/chat/guides/media-support,但是出现了错误。我使用的方法如下所示: 错误消息: