https://developer.chrome.com/extensions/tabs#method-getSelected показывает
getSelected
chrome.tabs. getSelected (integer windowId, обратный вызов функции) Устаревший с Chrome 33. Используйте tabs.query {active: true}. Получает вкладку, выбранную в указанном окне.
Возможно, вы должны использовать chrome.tabs.query в popup.js , например
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){ console.log(tabs[0].url); });
, перезагрузить расширение и проверить результат в элементе проверки вашего расширения.
результат изображения
код изображения
https://developer.chrome. com / extensions / tabs # type-Tab показывает, что отображается URL-адрес, отображаемый вкладкой. Это свойство присутствует только в том случае, если манифест расширения содержит разрешения «tabs». (Только для того, чтобы напомнить, что кто-то забыл. Я забыл об этом, когда я просто проверил его.)
Вам также необходимо использовать компонент Provider
где-то выше компонента MyContext.Consumer
.
Пример
const initialState = {
ve: "randomValue"
};
const MyContext = React.createContext();
class MyProvider extends React.Component {
constructor(props) {
super(props);
this.state = initialState;
}
render() {
return (
<MyContext.Provider
value={{
state: this.state
}}
>
{this.props.children}
</MyContext.Provider>
);
}
}
class App extends React.Component {
render() {
return (
<MyProvider>
<MyContext.Consumer>
{context => <div>{JSON.stringify(context)}</div>}
</MyContext.Consumer>
</MyProvider>
);
}
}
ReactDOM.render(<App />, document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>