2017-07-06 32 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響應的情況下被調用,按照您提供的源代碼。

相關問題