window.addEventListener("load", init('ssss666'), false); 如何传参

问题描述

源代码如下http://www.xyhtml5.com/websocket-javascript-example.html但是我想传参,所以我改成如下,结果就不工作了,我是那里改错了呢,谢谢!<!DOCTYPEhtml><metacharset="utf-8"/><title>WebSocketTest</title><scriptlanguage="javascript"type="text/javascript">varwsUri="ws://echo.websocket.org/";varoutput;varyy="gggggggcccc操操";functioninit(xx){output=document.getElementById("output");testWebSocket(xx);}functiontestWebSocket(xx){websocket=newWebSocket(wsUri);websocket.onopen=function(evt){onOpen(evt)};websocket.onclose=function(evt){onClose(evt)};websocket.onmessage=function(evt){onMessage(evt)};websocket.onerror=function(evt){onError(evt)};}functiononOpen(evt){writeToScreen("CONNECTED"+yy+xx);doSend("WebSocketrocks");}functiononClose(evt){writeToScreen("DISCONNECTED");}functiononMessage(evt){writeToScreen('<spanstyle="color:blue;">RESPONSE:'+evt.data+'</span>');websocket.close();}functiononError(evt){writeToScreen('<spanstyle="color:red;">ERROR:</span>'+evt.data);}functiondoSend(message){writeToScreen("SENT:"+message);websocket.send(message);}functionwriteToScreen(message){varpre=document.createElement("p");pre.style.wordWrap="break-word";pre.innerHTML=message;output.appendChild(pre);}window.addEventListener("load",init('ssss666'),false);</script><h2>WebSocketTest</h2><divid="output"></div></html>

解决方案

解决方案二:
自己置顶一下,大家帮忙看一眼,非常感谢
解决方案三:
functiononOpen(evt){writeToScreen("CONNECTED"+yy+xx);doSend("WebSocketrocks");}你这个XX编码没定义吧!
解决方案四:
functiontestWebSocket(xx){websocket=newWebSocket(wsUri);websocket.onopen=function(evt){onOpen(evt)};我还以为用上面的可以声明呢,看来我错了
解决方案五:
window.addEventListener的第二个参数是一个“函数”,也就相当于c#的委托。而你的代码传的不是函数,你的init('ssss666')语句的返回值为null,所以你的代码就相当于写window.addEventListener("load",null,false);脚本监听浏览器端dom抛出的事件,它回调函数的参数列表是固定的。也就是说init函数的第一个参数、第二个参数、第三个参数,是预定义的,是浏览器javascript很早以前的规范所定义的。当你的init函数不足3个参数,或者多于3个参数,也都不会让你自己随便定义参数。所以你写的代码中的init('ssss666')语句完全是无根据的。只能解释为你不太熟悉javascript以及前端基本规范。实际上,javascript语言是一种很不靠谱的语言。它所谓“动态语言”其实就是混乱,而你看不到任何明确的编译错误信息,程序会胡乱执行。所以javascript语言编程需要你更多地瞎猜、硬背,多测试(而且许多测试都是在重复上百次之后才报bug)。
解决方案六:
引用3楼zhengyingcan的回复:

functiontestWebSocket(xx){websocket=newWebSocket(wsUri);websocket.onopen=function(evt){onOpen(evt)};我还以为用上面的可以声明呢,看来我错了

我估计根本没有用vs调试js。由于你的testWebSocket并不是在页面load事件触发之后执行的(而是在window.addEventListener这条语句执行完之前执行的),所以你的output变量的值肯定是undefined,根本找不到<div>。你贴出你“以为的”一些东西,看起来都是蒙着来的,不是调试、测试而来的。所以你所描述的东西处处都是问题,简直是一团乱麻,不知道从哪里让你认证学、落实才好了。
解决方案七:
我估计根本没有用vs调试js-->我估计你是平常根本没有用vs调试js对于js代码来说,比如说abc是一个函数,那么varf=abc;

跟varf=abc('1234');

以及varf=abc(1234);

有什么区别呢?这需要你真正学习javascript!
解决方案八:
好的,我多看看JS视频

时间: 2024-11-02 05:50:34

window.addEventListener(&amp;quot;load&amp;quot;, init(&amp;#x27;ssss666&amp;#x27;), false); 如何传参的相关文章

ajax-兄弟伙我的OnSuccess=&amp;amp;quot;afterLogin&amp;amp;quot;咋调用不起

问题描述 兄弟伙我的OnSuccess="afterLogin"咋调用不起 兄弟伙我的OnSuccess="afterLogin"咋调用不起,直接返回return Content类容到页面 @{ Layout = null; } <!DOCTYPE html> 网上超市管理系统 </p> <pre><code> //就是执行controller方法以后执行的方法 function afterLogin(data) {

safari-MacBook的Safari下type=&amp;amp;quot;submit&amp;amp;quot;点击后显示不出div

问题描述 MacBook的Safari下type="submit"点击后显示不出div 如题,按钮点击的时候在window浏览器这个红色背景的div会一闪而过,但是在macbook的Safari中什么效果都没有,return false的时候div可以显示出来,但表单还怎么提交啊,return true时页面中div已经加载变成block了,感觉是还没来得及被浏览器渲染页面就刷新了一下,有没有什么办法可以让它有一闪而过的效果? html: <div id="divTes

window.addEventListener来解决让一个js事件执行多个函数_javascript技巧

可能你也碰到过这种情况,就是在js的代码中用了window.onload后,可能会影响到body中的onload事件.你可以全写在body中,也可以全放到window.onload中,但是这样并不是很方便,有时我们需要两个同时用到.这时就要用window.attachEvent和window.addEventListener来解决一下. 下面是一个解决方法.至于attachEvent和addEventListener的用法,可以自己Google或百度一下. 复制代码 代码如下: if (docu

jsp truts-&amp;amp;lt;div class=&amp;amp;quot;error_mes&amp;amp;quot;&amp;amp;gt;${message}&amp;amp;lt;/div&amp;amp;gt;

问题描述 <div class="error_mes">${message}</div> ${message}什么意思?${message}通常在哪实现? 解决方案 ${message}是java中el表达式 可以获取域中的值 四大作用域 application request session pageContext 建议百度看下el表达式就ok了 解决方案二: jsp中的EL表达式,具体看下这里面.http://blog.csdn.net/chinacshar

jquery mobile中使用data-role=&amp;amp;quot;dialog&amp;amp;quot;弹出对话框的问题

问题描述 jquery mobile中使用data-role="dialog"弹出对话框的问题 如图,当页面除了一个"page"和"dialog"还有其它的 容器时,对话框后的背景就会显示没有样式的这个容器内容, 这是为什么呢,怎样才能让背景中不显示任何东西 解决方案 试试把背景内容放到另一个page中 你说的data-role =dialog 我没注意到 这个属性... 另外 可以看看 . data-role=popup http://www.

java web-&amp;amp;lt;c:forEach items=&amp;amp;quot;${salesProducts }&amp;amp;quot; var=&amp;amp;quot;pro&amp;amp;quot;&amp;amp;gt;

问题描述 <c:forEach items="${salesProducts }" var="pro"> ${pro.goodsName}特价:¥${pro}/c:forEach pro的bean类属性都设了getter和setter方法,但是${pro.goodsName}没值,${pro}却有值 解决方案 检查一下goodsName属性名称有没写错. 解决方案二: private String goodsName;public String getG

&amp;amp;lt;FORM name=&amp;amp;quot;MemberCard_main&amp;amp;quot; method=&amp;amp;quot;post&amp;amp;quot; action=&amp;amp;quot;./MemberCardServlet&amp;amp;quot; &amp;amp;gt;

问题描述 MemberCardServlet类里有很多方法,这样子提交过去为什么它可以找到exportMemberInfomation这个方法? 问题补充:<%@ page language = "java" %><%@ page contentType = "text/html;charset=UTF-8" %><%@ page import = "tw.com.sinews.im.*" %><%@ p

js中window.showModalDialog各浏览器居中和传参实例兼以及一些兼容性问题

  浏览器居中以及传参实例 window.showModelDialog可设置center参数为yes,保证其在子窗口在父窗口居中. 但是该参数只对IE浏览器有效,对火狐无效,只有通过计算模态窗口的居中位置.   解决办法 function openShowModalDialog(url,param,whparam,e){    // 传递至子窗口的参数  var paramObj = param || { };    // 模态窗口高度和宽度  var whparamObj = whparam

关于window.open()你们都是如何利用post传参的

问题描述 关于window.open()你们都是如何利用post传参的 关于window.open()你们都是如何利用post传参的 解决方案 这没办法用post传参,只能用get 解决方案二: 用表单提交,设置target=""_blank""新窗口打开 window.open和caozhy说的一样只能get 解决方案三: win = window.open(ctx + ""/page/vulnerableNode/dataBrowse.jsp