我需要知道如何将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我可以这样做吗?请帮帮我
答案 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"
]