2017-09-02 53 views
0

如何將腳本1,Name, Email, Teams的結果轉換爲我可以使用的變量腳本2在一個腳本中創建變量並在另一個腳本中使用。 JQuery/HTML/JS

我正在做一個API調用來獲取一些JSON然後我想要使用某些值作爲消息中的文本然後我發送到鬆弛。

示例。

$('.Name').html(data.user.name); // Returns John 
$('.Email').html(data.user.email); // Returns [email protected] 
$('.Teams').html(data.user.teams[0].name); // Returns JohnsTeam 

var text = 'Hello my name is $Name + my email is $Email + From $Teams' 

輸出=你好,我的名字是約翰我的電子郵件是[email protected]從JohnsTeam

腳本1

function currentUrl() { 
    return new Promise(function (resolve) { 
    chrome.tabs.query({ 
     active: true, 
     currentWindow: true 
    }, function(tabs) { 
     resolve(tabs[0].url) 
    }) 
    }) 
} 

function userIdfromUrl(url) { 
    var parts = url.split('/') 
    return parts[parts.length - 1] 
} 
var authorizationToken = "xxxxxxxxxxxxxxxxxxxxxxxxx"; 
function myapiRequest(endpoint, options) { 
    $.ajax($.extend({}, { 
    type: 'GET', 
    dataType: "json", 
    success: function(data) { 
    $('.Name').html(data.user.name); 
    $('.Email').html(data.user.email); 
    $('.Teams').html(data.user.teams[0].name); 
}, 

    url: "https://api.myapi.com/" + endpoint, 
    headers: { 
     "Authorization": "Token token=" + authorizationToken, 
     "Accept": "application/vnd.myapi+json;version=2" 
    } 
    }, 
    options)); 
} 
currentUrl() 
    .then(function (url) { 
    return userIdfromUrl(url) 
    }) 
    .then(function (userId) { 
    return myapiRequest('users/' + userId + '?include%5B%5D=contact_methods&include%5B%5D=teams') 
    }) 
    .then(function (data) { 
    console.log(data.user.name) 
    console.log(data.user.email) 
    console.log(data.user.teams[0].name) 
    }) 

腳本2

$(document).ready(function(){ 
    $('#contact-submit').on('click',function(e){ 
     e.preventDefault(); 
     var url = 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
     var text = 'This is a message' 
     $.ajax({ 
      data: 'payload=' + JSON.stringify({ 
       "text": text // What I want to dynamically change 
      }), 
      dataType: 'json', 
      processData: false, 
      type: 'POST', 
      url: url 
     }); 
    }); 
}); 
+0

感謝您的回覆,雖然我不確定您的意思,但是不要假設您可以提供示例?謝謝 –

回答

1

一個gr吃的解決方案是設置你從HTML5 localstorage響應得到變量,如下所示:

  • 在我們共同的成功:
success: function(data) { 
    localStorage.setItem("urdata",JSON.stringify(data)); 
} 
  • 在其他腳本,U可以檢索像這樣的數據:

var data = localStorage.getItem(「urdata」); data = JSON.parse(data);

+0

不幸的是我不得不遠離任何localsotrage。另外我不確定每個返回的值如何以這種方式聲明。謝謝 –

+0

如果它們在不同的頁面中是不同的腳本,你可以在會話中使用localStorage或全局變量,據我所知 – Sletheren

+0

全局變量是我期望的,它是一個chrome應用程序,所以我認爲一切都是全球默認。 –

相關問題