0

Моей проблемы заключается в следующем: я смог прикрепить слушатель к кнопке browser_action радио в расширении хрома и может выскочить окно предупреждения, если я хочу, чтобы это сделать так, НОBrowser действия кнопки радио нажмите

Мое намерение состоит в том, чтобы скрыть()/show() кнопку на странице, которую я вставлял в DOM с этим же расширением.

Мой вопрос в том, что мне не хватает? Как я могу заставить его работать?

Ниже вы можете найти все фрагменты кода, которые я использую.

manifest.json

{"manifest_version": 2, 
"name": "Button Summoner", 
"description": "This extension shows a pop-up window where you can summon a button", 
"version": "0.1", 
"browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
}, 
"content_scripts": [ 
{ 
"matches": ["https://*/*"], 
"js": ["jquery_min.js","summoner.js"] 
}]} 

summoner.js

jQuery(document).ready(function(){ 
    var button = $('<button id="cc_lookUp_button >Button</button>'); 
    button.hide(); 
    $(button).insertAfter("body"); 
}); 

popup.html

<!doctype html> 
<html> 
<head> 
    <script src="jquery_min.js"></script> 
    <script src="popup.js"></script> 
</head> 
    <body> 
     Enable/Disable Extension<br/> 
     <input type="radio" id="radioEnable" name="enable" value="enable">Enable</br> 
     <input type="radio" id="radioDisable" name="enable" value="disable">Disable</br></br> 

popup.js

document.addEventListener('DOMContentLoaded', function() { 
    document.querySelector('#radioEnable').addEventListener('change', changeHandler); 
}); 
function changeHandler(){ 

if(radioEnable.checked){ 
    alert("BYOB"); //this works like a charm 
    $('#cc_lookUp_button').show(); //this is not 
} 
else{ 
    $('#cc_lookUp_button').hide(); // neither this 

    } 
} 

Там нет сообщения об ошибке он просто не работает.

+0

Часть, где я добавляю кнопку, работает отлично. Проблема заключается в том, как изменить видимость этой кнопки через всплывающее окно browser_action. Но спасибо за ссылки, которые я прочитаю больше об этой теме. – Gregion

+0

Вы вводите кнопку на странице. Но затем попытаться получить доступ во всплывающем HTML. – Moin

+0

Значения контекста и DOM разные. Используйте обмен сообщениями для связи с скриптом содержимого. – Moin

ответ

1

Я смог решить проблему, поэтому считаю полезным поделиться ею с сообществом.

Вы можете использовать другое решение, если оно больше подходит для вас, поскольку разделение исполняемых кодов на разные файлы показалось организованным решением.

Другой должен написать «код:« ваш код приходит сюда »вместо части другого .js-файла в popup.js.

manifest.json

{"manifest_version": 2, 
"name": "Button Summoner", 
"description": "This extension shows a pop-up window where you can summon a button", 
"version": "0.1", 
"browser_action": { 
"default_icon": "icon.png", 
"default_popup": "popup.html" 
}, 
"content_scripts": [ 
{ 
"matches": ["https://*/*"], 
"js": ["jquery_min.js","button_show.js","button_hide.js","crafty_postcode.class.js","cc_lookup_summoner.js"] 
}]} 

popup.js

document.addEventListener('DOMContentLoaded', function() { 
document.querySelector('#radioEnable').addEventListener('change', changeHandler); 
}); 
function changeHandler(){ 

if(radioEnable.checked){ 
chrome.tabs.executeScript({ 
     file : 'button_show.js' 
    }); 
} 
else{ 
chrome.tabs.executeScript({ 
     file : 'button_hide.js' 
    }); 
} 

button_hide.js

$('#cc_lookUp_button').hide(); 

button_show.js

$('#cc_lookUp_button').show(); 
Смежные вопросы