KeleQAQ 2020-05-03 00:15 采纳率: 0%
浏览 66

JS函数的问题解答一下

图片说明

这里的callback函数里面没有传过来xmlHttp对象,为什么里面可以用?
我觉得他应该写成有参函数,或者写成
xmlHttp.onreadystatechange=function(){  
    //代码 
};

下面是源程序的完整代码

<script type="text/javascript">
    var xmlHttp=null;

    function getMoreContents(){
        //获得用户输入
        var content=document.getElementById("keyword");
        if(content.value==""){
            return;
        }
        //要给服务器发送用户输入的内容,使用XMLHttpRequest对象
        xmlHttp=createXMLHttp();
        //给服务器发送数据,使用 XMLHttpRequest 对象的 open() 和 send() 方法:
        //SerachServlet是servlet类
        var url="SerachServlet?keyword="+escape(content.value);
        xmlHttp.open("get",url,true);
        xmlHttp.send();
        xmlHttp.onreadystatechange=callback;
    }



    //获得xmlHttp
    function createXMLHttp(){
        var xmlHttp=null;
        if(window.XMLHttpRequest){
            xmlHttp=new XMLHttpRequest();
        }
        return xmlHttp;
    }

    function callback(){
        if (xmlHttp.readyState==4 && xmlHttp.status==200){
            //成功,返回数据
            var result=xmlHttp.responseText;
            //解析数据
            var json=eval("("+result+")");
            //数据展示到输入框下面
        }
    }
</script>
  • 写回答

2条回答 默认 最新

  • MFine 2020-05-03 12:55
    关注

    getMoreContents()里有就可以了,callback()是它里面的函数,完全可以调用上级的变量。

    评论

报告相同问题?

悬赏问题

  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动
  • ¥15 安装wampserver,图标绿色,但是无法进入软件
  • ¥15 C++ MFC 标准库 加密解密解惑
  • ¥15 两条数据合并成一条数据
  • ¥15 Ubuntu虚拟机设置
  • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项
  • ¥15 electron 如何实现自定义安装界面
  • ¥15 关于#linux#的问题:子进程C运行“ls –l”命令,且显示“C运行ls-l命令”(语言-c语言)
  • ¥15 vs code配置c语言遇到这个问题