Что не так с моим расширением? - PullRequest
0 голосов
/ 20 июля 2011

backg.html

<script type="text/javascript">
var domurl = "http://www.xxxxxx.xxxx/id";


var txt;
var txt2;
var id1;
var id2;
var imgarres = [];
var imgarr = [];
var imgels = [];
var anchors = [];
var anc = [];

function getdata() {
    if (id1){clearTimeout(id1);}
    if (id2){clearTimeout(id2);}

    getUrl();

    var xurl = null;
    xurl = localStorage['url'];

    var xhr = new XMLHttpRequest();
    xhr.open('GET',xurl, true);
    xhr.setRequestHeader('Cache-Control', 'no-cache');
    xhr.setRequestHeader('Pragma', 'no-cache');

    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4)  {
        txt = xhr.responseText;
        var r = txt.indexOf('<b class="fl_r">Online</b>');
        var el = document.createElement("div");
        el.innerHTML = txt;
        var n = imgprocess(el,xurl);        
        var nam = el.getElementsByTagName("title")[0].innerHTML;
            if (r != -1) {
            var notification = webkitNotifications.createNotification(n,  nam, 'online!!' );
            notification.show();
             id1 = setTimeout(getdata, 60000*45);


            }
           else {


             id2 = setTimeout(getdata, 60000*2);
           }


    }}

    xhr.send();

}








function imgprocess(text,url){
 imgarres = [];
 imgarr = [];

 imgels = text.getElementsByTagName("IMG");
for (var i=0;i< imgels.length;i++){
 if (imgels[i].src.indexOf(parse(url)) != -1){
    imgarr.push(imgels[i]);


 }


}
for (var p=0; p< imgarr.length; p++){
 if (imgarr[p].parentNode.nodeName=="A"){
  imgarres.push(imgarr[p]);


}
} 
var z = imgarres[0].src;

return z; 
}

function getUrl(){
if (localStorage.id){
    if (isNaN(localStorage.id)){


          nicktoid(localStorage.id, function(resul){
            localStorage.removeItem("url");
            localStorage["url"] = "http://xxxxxxxx.xxxx/id" + resul;

          });
}

else {
localStorage.removeItem("url");
localStorage["url"] = domurl + localStorage.id;

}

}
else {
var notif = webkitNotifications.createNotification(null, 'blah,blah,blah', 'specify ID ' );
notif.show();   
getdata();
}
}

function nicktoid(nick, callback){

    var u = "http://xxxxxxx.xxxx/" + nick ;
    var xhr2 = new XMLHttpRequest();
    xhr2.open('GET',u, true);
    xhr2.setRequestHeader('Cache-Control', 'no-cache');
    xhr2.setRequestHeader('Pragma', 'no-cache');

    xhr2.onreadystatechange = function() {
        if (xhr2.readyState == 4)  {
        txt2 = xhr2.responseText;
        var el2 = document.createElement("div");
        el2.innerHTML = txt2;

        anchors = el2.getElementsByTagName("a");
        for (var i=0;i< anchors.length;i++){
            if (anchors[i].parentNode.id == "profile_avatar"){

                anc.push(anchors[i]);
            }


        }

        var res = anc[0].href;
        var ir = res.replace(/^chrome-extension:\/\/.*?\//, "/");

        var arstr = ir.split("_");
        var resul = arstr[0].substr(6);
        callback(resul);

}



}
xhr2.send();
}


function init() {

 getdata();


}
</script>
</head>
<body onload="init();">

</body>
</html>

options.html

<script>

  onload = function() {
  if (localStorage.id){
    document.getElementById("identifier").value = localStorage.id;
  }

  else {
    var el = document.createElement("div");
    el.innerHTML = "enter ID!!";
    document.getElementsByTagName("body")[0].appendChild(el);

  }

  };

function onch(){

localStorage.id = document.getElementById("identifier").value;

var bg = chrome.extension.getBackgroundPage();
if(bg.id1){

bg.getdata();
}



  }
</script>
<body>
<h1>

</h1>
<form id="options">
<h2>Settings</h2>


    <label><input type='text' id ='identifier' value='' onchange="onch();"> Enter ID </label>
</form>
</body>
</html>

Этот пост является продолжением предыдущего .Я решил добавить указав пользователя по нику (в дополнение к идентификатору).Проблема в том, что это не работает, как ожидалось.он не меняет пользователя через страницу параметров сразу.он (вероятно) сохраняет ник в localStorage, но отображает предыдущего пользователя !!он начинает отображать текущего пользователя только после двухкратной перезагрузки расширения !! (указание через идентификаторы работает нормально!).Что я упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...