Расширения Google Chrome document.title не работают - PullRequest
4 голосов
/ 05 октября 2011

вот код в манифесте. Json

{
  "name": "Page Title changer",
  "version": "1.0",
  "description": "Change the <title></title> of a page",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "content_scripts": [
    {
      "matches": ["http://*/*"],
      "js": ["changetitle.js"]
    }
  ]
}

и вот код из файла changetitle.js

chrome.browserAction.onClicked.addListener(function() {
    document.title = 'new page title';
});

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

Ответы [ 3 ]

3 голосов
/ 05 октября 2011

Как указано в документации , вы не можете использовать chrome.* API в скриптах содержимого, за исключением некоторых chrome.extension.* методов.

Однако это не ограничивает вас, как вы можетеиспользуйте message для вызова скрипта контента с фоновой страницы.Например;

background.html

<script type="application/javascript">
chrome.browserAction.onClicked.addListener(function() {
    chrome.tabs.getSelected(function (tab) {
        chrome.tabs.sendRequest(tab.id, {title: 'new page title'}, function (response) {});
    });
});
</script>

changetitle.js

chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
    document.title = request.title;
});

Вам, конечно, потребуетсяразрешение tabs для использования этой техники.

2 голосов
/ 05 октября 2011

Этот будет работать в любой схеме URI

manifest.json

{
  "name": "Page Title changer",
  "version": "1.0",
  "description": "Change the <title></title> of a page",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "background_page": "background.html",
  "permissions": [
        "tabs"
  ]
}

background.html

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

changetitle.js

document.title = 'new page title';
1 голос
/ 05 октября 2011

Попробуйте это:

chrome.browserAction.onClicked.addListener(function () {
    chrome.tabs.executeScript(null, {
        code: "document.title = 'new page title'"
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...