Надеюсь, вы мне поможете :) Я создал расширение Chrome (мое первое) и у меня возникли трудности с автоматическим заполнением <select>
на <option>
, которые возвращаются.
Страница default_popup - index.htm.У меня есть два <select>
(списки? Не могу вспомнить имя) коробки.Когда пользователь впервые щелкает расширение, он выполняет запрос XMLHttpRequest для сценария php и получает список имен из базы данных MySQL.Он возвращает (onLoad) список в виде: <option>
бла </option>
Когда пользователь выбирает параметр из первого списка / выбора, он выполняет другой XMLHttpRequest и автоматически заполняет второй список /Выбрать.Затем, когда пользователь выбирает параметр из второго списка, он в конечном итоге заполняет некоторые подробности вниз по странице.
Я тестировал, просто запустив файл index.htm и увидевесли только код работает правильно, что он делает.Однако при попытке просмотреть его из расширения это не работает.OnLoad не заполняет первый список, и выбор опции (которую я набрал в поле для тестирования) из первого списка не заполняет второй список.
Я подумал, что это может бытьошибка разрешений, поэтому я попытался добавить домен в файл manifest.json;но после этого я получаю сообщение об ошибке в файле manifest.json.
В моем файле default_popup (index.htm) у меня есть этот скрипт для моего XMLHttpRequest:
<script type="text/javascript">
function getClient(str,type)
{
if (str=="")
{
document.getElementById(type).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(type).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://(domain removed)/Extension/getInfo.php?q="+type+"&c="+str,true,"user","pass");
xmlhttp.send();
}
</script>
Вот как выглядит мой файл manifest.json:
{
"name": "Client Center Lite",
"version": "1.0",
"description": "blah",
"browser_action": {
"default_icon": "images/icon_19.png",
"default_popup": "index.htm",
"default_title": "Client Center Lite"
},
"icons":{
"128":"images/icon_128.png"
}
"permissions": {
"http://(domain removed)/"
},
}
Правильно ли я делаю это?Смысл расширения в том, чтобы иметь возможность быстро просматривать детали клиента.Расширение будет предоставлено сотрудникам только локально в файле .crx и не будет распространяться в Интернете.Домен, к которому я обращаюсь через PHP / MySQL, доступен из Интернета, но в настоящее время я использую localhost в моей строке mysql_connect.Нужно ли возвращать <option>
элементы, закодированные как JSON?Если это так, я совершенно не знаю, как это сделать.