Расширение Google Chrome, которое позволяет определенному веб-сайту вызывать функцию в коде расширения. - PullRequest
1 голос
/ 13 февраля 2012

Я новичок в разработке расширений, возможно, у кого-то есть небольшой пример, готовый для моей проблемы. Я планирую более сложный код (который будет выполнять функции chromium API), но решение этой задачи должно помочь мне начать:

Я хочу создать расширение, которое запускает всплывающее окно или оповещение () (что угодно) на основе вызова JavaScript веб-сайта.

Так, например, на моем веб-сайте есть кнопка, при нажатии на которую выполняется javascript с несколькими параметрами. Мое расширение выбирает эти параметры и выполняет API (для моего примера просто любое всплывающее окно) на основе параметров. В моем базовом примере я хотел бы вызвать какое-то всплывающее окно / уведомление с текстом, предоставленным веб-сайтом javascript. Кроме того, только домен моего веб-сайта должен быть разрешен, а все остальное должно быть отклонено.

Я бы очень признателен за помощь. Вот мой "пустой" манифест

{
    "name": "Special API",
  "version": "1.0",
  "description": "API demo extension.",
  "browser_action": 
  {
    "default_icon": "gears.ico",
    "popup": "show_credits.htm"
  },
  "permissions": [
    "http://www.mywebsite.com/"
  ]
}

Вот пример кнопки на моем website.com/example

<html>
<body>
<button onClick="extension_do_exec('Hellow world','abcabc')">Execute extension function</button>
</body>
</html>

1 Ответ

2 голосов
/ 13 февраля 2012

Подход, который вы описали, проблематичен, потому что javascript-коды веб-страниц и javascript-коды расширений изолированы друг от друга (существует понятие изолированный мир ).Таким образом, невозможно получить значение «предоставленное javascript веб-сайта» непосредственно в javascript расширения.Я бы предложил другой подход.Возможно, вы могли бы обмениваться с некоторыми значениями, назначая их в качестве свойств для объектов DOM.К этим свойствам можно получить доступ из скрипта контента, внедренного в веб-страницу.Конечно, скрипт контента может определять домен страницы и работать соответствующим образом.Что касается всплывающих окон, это внутренние страницы расширения, и вы должны реализовать своего рода обмен сообщениями между ними и вашим скриптом контента.

...