2016-01-20 2 views
-2

Я потратил часы и часы, пытаясь понять, что случилось с моим расширением хром. Я знаю, что мой код function.js хорош, потому что он работает с html-страницей, на которую я ссылаюсь, но, возможно, это неправильно для chrome-расширений? Вся помощь ценитсяПочему мое хромовое расширение не работает?

manifest.json

{ 
     "manifest_version": 2, 

     "name": "Font Find", 
     "description": "This extension allows you to click on any text, and find out what font it is written in.", 
     "version": "1.0", 
     "background": { 
       "page": "popup.html", 
       "persistent": true 
      }, 

    "permissions": [ 
     "activeTab", 
     "http://*/*", 
     "https://*/*" 
     ], 

     "browser_action": { 
     "default_title": "Find the Font", 
     "default_icon": "icon.png"//, 
    // "default_popup": "popup.html" 
     }, 

      "background": { "scripts": ["jquery.min.js"] }, 


     "content_scripts": [ 
      { 
       "matches": [ 
        "http://*/*", 
        "https://*/*" 
       ], 
       "js": [ 
        "function.js" 
       ] 
      } 
     ] 
    } 

popup.html файл (обратите внимание, это не установлено, как всплывающее окно)

      <!DOCTYPE HTML> 
      <html> 
       <head> 
        <!-- <link rel="stylesheet" href="popup.css"/> --> 

        <script src="jquery.min.js"></script> 
        <script src="popup.js"></script> 
        <script src="function.js"></script> 

       </head> 

      </html> 

function.js файл

   "use strict"; 

      $("body").append('Test'); 

      document.body.ondblclick = function(event){ 

       //event.stopPropagation(); 
       var target = event.target || event.srcElement; 

       alert("What you clicked on:" + $(target).text() + " It's font-family is: " + $(target).attr("font-family")); 

      } 

function.js файл

chrome.browserAction.onClicked.addListener(function (tab) { 
    chrome.tabs.executeScript({ 
     file: "function.js" 
    }); 
}); 
+0

Голосование закрывается как не по теме, потому что это «Почему этот код не работает?» вопрос. Пожалуйста, будьте более конкретными. Например, есть ли у вас какие-либо ошибки? Как это «не работает»? Вы установили его правильно? –

+0

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

+0

Добро пожаловать в SO! Я предполагаю, что может быть проблема с установкой. Вы правильно добавили это в Chrome? –

ответ

0

Во-первых, редактировать файл manifest.json. Добавьте этот код:

"content_scripts": [{ 
    "matches": [ 
     "http://*/*", 
     "https://*/*" 
    ], "js": [ 
     "jquery.min.js", 
     "function.js" 
    ], "run_at": "document_start" 
}] 

И теперь, используйте этот код в файле function.js.

document.addEventListener("DOMContentLoaded", function() { 
    document.body.addEventListener("dblclick", function(e) { 
     var target = e.target; 
     alert("What you clicked on: " + $(target).text() + " It's font-family is: " + $(target).attr("font-family")); 
    }, true); 
}); 

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

+0

Спасибо большое :) Я очень ценю это. Я работаю над своим javascript! Надеюсь, все будет лучше. – Steven

+0

Почему мой оригинальный JS не работал для расширения хром? – Steven

+0

@Steven, возможно, ваш jquery.min.js не вводится в момент запуска документа, прежде чем ваш jquery.js будет загружен, в другое место, где вызывается использование jquery. –

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