Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Расширение для Хрома (https://javascript.ru/forum/css-html/52700-rasshirenie-dlya-khroma.html)

telekomstoy 02.01.2015 14:35

Расширение для Хрома
 
Здравствуйте, уважаемые постояльцы!
Столкнулся с такой глупой бедой.
Понадобилось написать простейшее расширение для Хрома: иконку рядом с адресной строкой, при нажатии на которую браузер бы отправлял на нужный мне сайт. Основы яваскрипта вроде как и знаю, но такой синтаксис как-то для меня непривычен. Полазив по просторам гугла, накропал вот это:

manifest.json

{
    "manifest_version": 2,

    "name": "Название",
    "version": "1.0",

    "icons": {
        "16": "./16.png",
        "32": "./32.png",
        "48": "./48.png",
        "128": "./128.png"
    },  


    "background" : {
        "page": "background.html"
    },
    "browser_action": {
        "default_title": "Application",
        "icon" : "16x16.png"}}


background.html

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="bg.js"></script>
    </head>
    <body></body>
</html>


bg.js

window.onload = function(){

    

    // set handler to extention on icon click
    chrome.browserAction.onClicked.addListener(function(tab) {
        location.href="соответственно ссылочка на сайт";
    });

    
};


Сама кнопочка появилась, но вот переадрессацию она мне не устраивает. Подскажите, пожалуйста, в чём моя ошибка. Заранее благодарен за помощь))

Octane 02.01.2015 22:23

Потому что по нажатию нужно выполнить не background, а content-скрипт.

manifest.json
{
    "manifest_version": 2,
    "name": "Go to URL",
    "version": "1.0",
    "permissions": ["activeTab"],
    "browser_action": {
        "default_title": "Go to URL",
        "default_icon": "icon.png"
    },
    "background": {
        "persistent": false,
        "scripts": ["background.js"]
    }
}


background.js
chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(null, {
        file: "content.js"
    });
});


content.js
window.location.href = 'http://…'

telekomstoy 03.01.2015 00:05

Спасибо, работает) тёмный лес прям для меня. И документации мало, с инглишом не дружу особо. Ещё раз спасибо за помощь!)


Часовой пояс GMT +3, время: 06:02.