0

Я создаю хром-расширение записи/воспроизведения, где пользователь может щелкнуть действие браузера, чтобы начать запись своих действий. Это добавит скрипт контента в текущую активную вкладку и начнет отправлять действия в фоновый скрипт. Сложная часть заключается в том, когда пользователь нажимает на ссылку, которая открывает новое окно/вкладку и скрипт, background.js сохраняет следы новых вкладок, созданных с помощью chrome.tabs.onCreated.addListener, и вставляет сценарий содержимого во вновь созданную вкладку, если ее Opener Tab ID, openerTabId совпадает с идентификатором начальной вкладки.Вставка скрипта содержимого во все новые вкладки, открытые с определенной вкладки

Все методы кажутся немного неуклюжими для меня. Это лучший способ?

+0

Нечеткие что вы спрашиваете здесь. Что кажется неуклюжим и каким образом? – Xan

ответ

0

Programmatic injection обсудил, что вставка кода на страницу программно полезна, когда ваш код JavaScript или CSS не следует вводить на каждую страницу, которая соответствует шаблону - например, если вы хотите, чтобы сценарий запускался только тогда, когда пользователь нажимает значок действия браузера.

Чтобы вставить код на страницу, ваше расширение должно иметь разрешения перекрестного происхождения для страницы. Он также должен иметь возможность использовать модуль chrome.tabs. После того, как вы установили разрешения, вы можете добавить JavaScript на страницу, вызвав tabs.executeScript. И, как указано также, вместо того, чтобы вставить код непосредственно, это обычно делается путем ввода кода в файле так:

chrome.tabs.executeScript(null, {file: "content_script.js"}); 

Кроме того, этот SO пост - Chrome extension: create tab then inject content script into it может помочь. :)

0

Я думаю, вы должны добавить content_script.js к и убедитесь, что вкладка новая вкладка с

if(history.length == 1){ 
    // TODO: something 
}