Приветствую!
Господа подскажите пожалуйста кодом.
Пытаюсь написать расширение для хрома
должна быть панелька с 5 кнопочками и текстовыми полями для логина и номера проекта (по идее всплывающая панелька)
nick и номер project (должны сохраняться)
При отсылке запроса вида
http://my_google/OutData.php?nick=" + nick + "&project=" + project
мы получаем html такого формата:
<div class="version">1.0.2</div>
<div class="status">1</div>
<div class="URL">http://url.com</div>
<div class="url_id">42323</div>
<div class="project">13</div>
<div class="todo">3</div>
при нажатии на кнопку, необходимо спарсить текст с полученной странички, то есть получить в глобальные переменные значения
Код:
|
version=1.0.2
status=1
URL=http://url.com
url_id=42323
project=13
todo=3 |
и далее перейти по указанному url.
После загрузки страницы нажимаем на кнопку, например: Сайт Принят
при этом формируется ответ серверу и отсылается.
Цикл повторяется, формируем входящий, получаем ссылку, смотрим ее, отправляем ответ.
Ответ формируется в виде:
url = "http://my_google/InData.php?project=" + project + "&url_id=" + url_id + "&todo=" + todo + "&terms=" + terms + "&nick=" + nick;
в terms записываем, что "Сайт принят".
После нескольких часов блужданий и копаний наваял вот такое:
в background.js
//получение кода страницы
function new_post_data(name, number){
console.log(name+" "+number); (странно но консоль почему-то не работает)
//создаем хак
xhr0 = new XMLHttpRequest();
xhr0.onreadystatechange = function(){
// дожидаемся загрузки
if (xhr0.readyState == 4){
var text = xhr0.responseText;
alert(text); //также не пашет()
// попытка получить урл из загруженной страницы
var url = f_parse_text_ant(text);
//открываем страничку в новой вкладке
page_info(url);
} else {
}
}
var formData = new FormData();
xhr0.open("GET", 'http://my_google/OutData.php?nick=' name '&project=' number);
xhr0.send(formData);
}
//пытаемся разобрать текст, пока что просто хотел получить урл
function f_parse_text_ant(text){
var st=text;
var s1;
var url= new Array();
var res_parse_new = new Array();
// подозреваю что регулярка, если она вообще здесь нужна, должна быть поменьше.
var pattern= /~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}". "(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|". «org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?». "!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:\/[a-z0-9.,_@%&". "?+=\~\/-]*)?(?:#[^ '\"&]*)?$~i/;
var res; var i=0;
while ( (res = pattern.exec(st)) != null) {
url[i]=res[1];
i++;
}
return url;
}
//открытие в новой вкладке.
function page_info(p_url){
chrome.tabs.create({url: p_url});
}
Помогите пожалуйста дореализовать
.
Заранее спасибо
.
p.S. Простите если написал не в тот раздел. Не смог определится.