2013-09-21 3 views
0

У меня есть Event Page, в котором я поставил некоторые слушатель, чтобы узнать, когда пользователь изменил URL в текущей вкладке, используя:Изменения DOM вкладки от событий Page

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 
    myFunction(tab); 
}); 

Теперь я хочу, чтобы изменить некоторые части вкладки DOM, используя myFunction. Я протестировал его немного, и кажется, что DOM Я сейчас меняю, это не то же самое, что вкладка, этот пользователь изменился.

Я люблю это, и я не знаю, должен ли я использовать Content Scripts.

Спасибо!

ответ

2

Если вы спрашиваете, как изменить DOM вкладки, я бы использовал для этого сценарий содержимого. Затем используйте postMessage для связи между вашей страницей событий и вашим сценарием контента, если вам нужно, но страницы событий могут исчезнуть, чтобы не быть надежным каналом.

Это из Google Code documentation:

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.executeScript(null, 
          {code:"document.body.bgColor='red'"}); 
}); 

Если вы спрашиваете, как получить текущую вкладку, получить текущую вкладку может меняться в зависимости от контекста. Ниже приводится то, что сработало для меня в последнее время.

В popup.html для действия браузера у меня есть:

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { 
     var current; 
     if (_.isEmpty(tabs)) { 
     return; 
     } 
     current = tabs[0]; 
    }); 

И в хромовом расширении: // Я использую:

chrome.tabs.getCurrent(function(tab) { 
    }); 
+0

спасибо за ответы! Я получил вкладку из JS (на странице события). Я просто пытаюсь изменить DOM со страницы событий. Разве невозможно сделать это оттуда? – Paschalis

+1

Да, используйте сценарий содержимого, из-за соображений безопасности мощная среда JavaScript на вашей странице событий не может напрямую взаимодействовать с DOM веб-страницы. См. Https://developer.chrome.com/extensions/messaging.html и https://developer.chrome.com/extensions/contentSecurityPolicy.html –

+0

Также, если вы найдете мой ответ полезным, пожалуйста, не забудьте перевернуть или отметить это как ответ. Это может также дать вам дополнительные ответы, потому что иногда он возвращается на домашнюю страницу. –

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