将本地存储变量传递给url并在chrome扩展中获取url的输出

时间:2013-12-02 09:38:41

标签: javascript google-chrome-extension

我需要知道如何将localstorage变量传递给外部url并获取url的输出。我想要做的是,目前我有一个网站设置为我的chrome扩展。当我最初安装扩展程序,它会显示一个弹出窗口,询问用户的电子邮件和密码。当用户输入他的电子邮件和密码时,它会存储在本地存储中。这在我的代码中工作得很好。现在我需要的是我必须将此localstorage变量传递给URL“... http://www.calpinemate.com/employees/attendanceStatus/ localStorage变量 / 2”,并且应该获取url返回的任何内容。我必须像上面的格式一样传递变量。请帮帮我

     function updateIcon(){

         var urlPrefix = 'http://www.calpinemate.com/employees/attendanceStatus/';
       var urlSuffix = '/2';

       var req = new XMLHttpRequest();

        req.addEventListener("readystatechange", function() {

       if (req.readyState == 4) {

         if (req.status == 200) {


         var item=req.responseText;


         if(item==1){

        chrome.browserAction.setIcon({path:"calpine_logged_in.png"});

        chrome.browserAction.setBadgeBackgroundColor({color:[190, 190, 190, 230]});

        chrome.browserAction.setBadgeText({text:""});   

         }

      else{

       chrome.browserAction.setIcon({path:"calpine_not_logged_in.png"});

       chrome.browserAction.setBadgeBackgroundColor({color:[190, 190, 190, 230]});

       chrome.browserAction.setBadgeText({text:""}); 

       chrome.notifications.create(
      'id1',{
       type: 'basic',
       iconUrl: '/icon_128.png',
       title: 'Calpinemate',
        message: 'Hello calpiner',
       buttons: [{ title: 'Mark',
                        iconUrl: '/tick.jpg'
                  },{ title: 'Ignore',
                        iconUrl: '/cross.jpg'}],
       priority: 0},
       function(id) { myNotificationID = id;}
        );


  chrome.notifications.onButtonClicked.addListener(function(notifId, btnIdx) {
  if (notifId === myNotificationID) {
    if (btnIdx === 0) {
        window.open("http://www.calpinemate.com/");
    } else if (btnIdx === 1) {
       notification.close();
    }
    }
   });

 chrome.notifications.onClosed.addListener(function() {
  notification.close();
 });


 }

      } 
   else {

        // Handle the error

        alert("ERROR: status code " + req.status);

       }

    }

      });
    var url = urlPrefix + encodeURIComponent(localStorage.username) + urlSuffix;
    req.open("GET", url);

      req.send(null);

     }

在这段代码中,我正在阅读一个网址“http://blog.calpinetech.com/test/index.php”,无论它返回什么,我都会将其取出并存储在变量中。现在我需要的是,我需要上面提到的url而不是这个url read.how我可以这样做吗?请帮帮我

1 个答案:

答案 0 :(得分:1)

您可以使用AJAX访问该URL。您将在运行时动态创建URL(基于localStorage.username中存储的值。( XMLHttpRequest 的更多信息。)

var urlPrefix = 'http://www.calpinemate.com/employees/attendanceStatus/';
var urlSuffix = '/2';

var xhr = new XMLHttpRequest();
xhr.addEventListener('load', function() {
    if (xhr.readyState === 4) {
        if (xhr.status !== 200) {
            alert('ERROR !!!');
        } else {
            alert('Response: ' + xhr.responseText);
        }
    }
});
var url = urlPrefix + encodeURIComponent(localStorage.username) + urlSuffix;
xhr.open('GET', url);
xhr.send(null);

另外,您需要拥有访问该域的权限:

// In manifest.json:
...
"permissions": [
    ...
    "http://www.calpinemate.com/employees/attendanceStatus/*/2"
]