0

В принципе, как изменить/изменить содержимое во всплывающем окне расширения, а не на веб-странице, просматриваемой пользователем.Хром-расширение, как изменить всплывающее окно, а не веб-страницу

И, MAke выпадающий список работает! У меня есть 2 DropDownList, если выбран первый один, отправляются на сервер и получать данные затем обновить 2nd один

Я попытался с помощью $("body").append('tasddadasdsssdet');

Но это закончилось изменение HTML веб-= страницы вместо HTML моего Chrome расширения.

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

Это это Fiddle

http://jsfiddle.net/g3Yqq/2/

Я загрузил расширение для https://www.mediafire.com/?3yske787di87780

HTML

<!doctype html> 
<html style="width: 270px;"> 
    <head > 
     <title>BCA Auto Login</title> 
     <script src="jquery.js"></script> 
     <script type="text/javascript" src="login.js"></script> 
    </head> 
    <body> 

<select id="select1"> 
    <option value="">Select sth</option> 
    <option value="1">1st option</option> 
    <option value="2">2nd option</option> 
    <option value="3">3rd option</option> 
</select> 

<select id="select2"> 
    <option value="">Select from select1 first</option> 
</select> 
    </body> 
</html> 

Manifest»

{ 
    "manifest_version": 2, 

    "name": "Admin Extension", 
    "description": "Personal Extension", 
    "version": "1.0", 

    "permissions": [ 
    "unlimitedStorage", 
    "activeTab", 
    "background", 
    "tabs", 
    "storage", 
    "webRequest", 
    "webNavigation" 
    ], 
    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
    }, 
    "content_scripts": [ 
    { 
     "matches": ["<all_urls>"], 
     "js": ["jquery.js","login.js"] 
    } 
    ] 

} 

Войти Extension

$("body").append('tasddadasdsssdet'); 
alert('test'); 
$('#select1').change(createSelect2); 
$('#select2').change(selectSelect2); 

function createSelect2(){ 
    var option = $(this).find(':selected').val(), 
    dataString = "option="+option; 
    if(option != '') 
    { 
     $.ajax({ 
      type  : 'GET', 
      url  : 'http://www.mitilini-trans.gr/demo/test.php', 
      data  : dataString, 
      dataType : 'JSON', 
      cache: false, 
      success : function(data) {   
       var output = '<option value="">Select Sth</option>';    
       $.each(data.data, function(i,s){ 
        var newOption = s; 

        output += '<option value="' + newOption + '">' + newOption + '</option>'; 
       });    
       $('#select2').empty().append(output); 
      }, 
      error: function(){ 
       console.log("Ajax failed"); 
      } 
     }); 
    } 
    else 
    { 
     console.log("You have to select at least sth"); 
    } 
} 

function selectSelect2(){ 

    var option = $(this).find(':selected').val(); 
    if(option != '') 
    { 
     alert("You selected: "+option); 
    } 
    else 
    { 
     alert("You have to select at least sth"); 
    } 
} 
+0

Вы хотите отредактировать всплывающее окно? – theonlygusti

+0

Я не думаю, что вам нужен весь этот код. – theonlygusti

+0

@theonlygusti Я пытаюсь заставить Chrome Extension работать. Выберите один вариант Dropdownlist, отправьте данные на сервер, извлеките и обновите второй выпадающий список – CodeGuru

ответ

0

Вот проблема:

"content_scripts": [ 
    { 
    "matches": ["<all_urls>"], 
    "js": ["jquery.js","login.js"] 
    } 
] 

content_script выполняется в контексте веб-страницы, а не ваше всплывающее окно.

Я предполагаю, что этот скрипт login.js переопределяет всплывающие окна.

Так что, если вы избавитесь от этого раздела, он должен работать.

+0

Итак, Login.js - это код, который мне требуется для извлечения данных для обновления второго выпадающего списка при первом щелчке. JQuery требуется? я предполагаю использовать .change в javascript? – CodeGuru

+0

Я нашел решение, видимо, мне пришлось разместить .change внутри document.ready – CodeGuru

+0

@CodeGuru Вы должны отправить его в качестве ответа тогда :) – theonlygusti

Смежные вопросы