2017-07-06 42 views
0

我不知道我是否正确地问这个问题,所以请裸露在我身边。所以我有以下代码必须是完整的,不能修改。如何创建可以访问函数及其对象的JavaScript包装器?

 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); 
     }; 

首先,我想请点击功能(NEWUSER),然后我想显示和报警时函数内的AJAX请求成功。到目前为止,我有类似

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

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

东西既然不能修改ADDUSER功能我想,我需要添加某种JavaScript包装来访问它。也许我正在反思,但我无法让它工作。任何帮助表示赞赏。

+2

我宁愿留下我的衣服,但我可以“忍受”你。你的第一个函数接受一个回调函数(参数3),这是你可以做你的警报。 – James

+0

@JamesTouché。我总是最终写错那个短语。谢谢你的提示 – Jimmy

回答

1

不完全确定我理解你的问题,但让我试着帮忙。指定处理函数:

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

然后调用newUser

el.onclick = addUser("userName", "userEmal", onSuccess); 

onSuccess将在200响应的情况下被调用,按照您提供的源代码。

相关问题