0

Я пытаюсь закончить это расширение хром, над которым я работал, но я просто застрял.Не удается запустить скрипт, ошибка передачи хром-сообщения?

В основном я пытаюсь заставить сценарий запускаться, когда он активируется пользователем (нажав кнопку включения и выключения, который я установил во всплывающем окне). Либо мне не хватает какого-либо кода, либо моя передача хром-сообщений в какой-то момент неактивна, поэтому всплывающее сообщение не может общаться с контентом.

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

Вот код, дайте мне знать, если вам нужно, чтобы увидеть что-нибудь еще

script.js

var audio = new Audio("http://a.tumblr.com/tumblr_libwsrXYlA1qbma2vo1.mp3"), 
    timer = null, 
    isScrolling = false; 


function enable() { 
    $(window).on('scroll', function() { 
     clearTimeout(timer); 
     audio.play(); 
     if (!isScrolling) { 
      isScrolling = true; 
      setTimeout(function() { 
       audio.pause(); 
       isScrolling = false; 
      }, 600); 
     } 
    }); 
} 

function disable() { 
    $(window).off('scroll'); 
    if (!isScrolling) { 
     isScrolling = true; 
     setTimeout(function() { 
      audio.pause(); 
      isScrolling = false; 
     }, 600); 
    } 
} 

chrome.tabs.onMessage.addListener(
    function (request, sender, sendResponse) { 
     console.log(sender.tab ? 
       "from a content script:" + sender.tab.url : 
       "from the extension"); 
     if (request.greeting == "hello") { 
      enable(); 
     } else { 
      disable(); 


     } 
    } 
); 

popup.js

$('#myonoffswitch').on('click', function (e) { 
     if (e.target.checked) { 
      console.log('enable'); 
     } else { 
      console.log('disable'); 

     } 

     chrome.tabs.sendMessage({greeting: "hello"}, function (response) { 
      console.log(response.farewell); 
     }); 
}); 

mypopup.html

<!doctype html> 
<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="css/mystyle.css" /> 
</head> 

<body> 

    <div class="onoffswitch"> 
    <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" checked> 
    <label class="onoffswitch-label" for="myonoffswitch"> 
     <span class="onoffswitch-inner"></span> 
     <span class="onoffswitch-switch"></span> 
    </label> 
    </div> 

<script src="/data/script.js"></script>  
<script src="/data/jquery-2.1.3.js"></script> 
<script src="popup.js"></script> 

</body> 

</html> 
+0

В чем проблема/проблема, с которой вы сталкиваетесь? Пожалуйста, будьте конкретны. – abraham

+0

Сценарий не включается, когда я этого хочу. Я хочу, чтобы он был включен, когда включен onoffswitch и отключен, когда его значение выключено –

ответ

1

Ваш код не делает и не идет к отключить ветвь в сценарии содержания:

if (request.greeting == "hello") { 
     enable(); 
    } else { 
     disable(); 
    } 

Вы всегда отправить {greeting: "hello"} независимо от включения/отключения государства.

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