javascript - 如何创建一个可以访问函数及其对象的 JavaScript 包装器?

标签 javascript html

我有以下代码,必须完整且不能修改。

        function newUser(username, email, callback) {
            var xhr = new XMLHttpRequest();
            var response;
            var success = (!!Math.round(Math.random()));

            if (!success){
                response = JSON.stringify({
                    success: success,
                    error: "Oups, something went wrong!"
                });
            } else {
                response = JSON.stringify({
                    success: success,
                    user: {
                        username: username,
                        email: email
                    }
                });   
            }

            xhr.open("POST", "/echo/json/");
            xhr.onload = function () {
                    if (xhr.status === 200) {
                        callback(JSON.parse(xhr.responseText));
                }
            }
            xhr.send("json=" + response);
        };

首先,我想在 Click 上调用一个函数 (newUser),然后我想在该函数内的 AJAX 请求成功时显示并发出警报。到目前为止我有类似的东西

            var el = document.getElementById("myButton");
            el.onclick = addUser;

               if (success){
                    alert (‘successful’);
                    }

由于我无法修改 addUser 函数,我认为我需要添加某种 JavaScript 包装器来访问它。也许我想太多了,但我无法让它发挥作用。

最佳答案

不完全确定我理解你的问题,但让我尽力提供帮助。指定处理函数:

function onSuccess(result){
   alert (‘successful’)
}

然后调用newUser:

el.onclick = addUser("userName", "userEmal", onSuccess);
根据您提供的源代码,如果出现 200 响应,将调用

onSuccess

关于javascript - 如何创建一个可以访问函数及其对象的 JavaScript 包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950988/

相关文章:

javascript - 将用户特定信息显示到标题工具提示中

javascript - JavaScript 中的数字格式化

php - getElementId 返回 null 或 undefined

css - 如何使输入值属性的内容居中

javascript - 如何让我的范围 slider 在 asp.net mvc 3 上的触摸屏上工作

ios - 安排任务在 phonegap ios 中的特定时间运行?

javascript - 如何在IE中实现 "Rounded Corner on hover effect"?

html - <ul> <li> 带框/div

javascript - 在 ajax 中使用两个 URL

javascript - 如何在嵌套 iframe 所在的原始窗口中打开链接?