Как получить URL текущей вкладки в моем расширении chrome с помощью javascript
Я только начинаю с разработки Google Chrome Extension, и мой проект включает в себя создание расширения, которое при нажатии на него печатает URL-адрес той страницы, которая в настоящее время открыта.
Итак, если я на главной странице google, и я нажимаю мое расширение, мне нужно получить " https://www.google.com/" как мой вывод в расширение.
Мне нужно сделать это с помощью javascript и не могу найти код, который я понимаю и который выполняет эту работу. Я читал об использовании "window.location" и "document.href" и т.д., Но не даст ли мне ссылку только моего расширения, а не текущей вкладки?
Пожалуйста, помогите мне начать. Спасибо заранее.
Ответы
Ответ 1
Try
chrome.tabs.getCurrent(function(tab){
console.log(tab.url);
}
);
Обратите внимание, что вы должны иметь разрешение tabs
, установленное в файле манифеста
"permissions": [
"tabs"
],
http://developer.chrome.com/extensions/tabs.html
или activeTab
, если инициируется щелчком по кнопке расширения [Xan]
https://developer.chrome.com/extensions/activeTab
Если вышеуказанное не работает, попробуйте
chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
console.log(tabs[0].url);
});
Ответ 2
Используя javascript, он будет работать, если вы не используете его во всплывающем окне, потому что javascript в popup вернет URL всплывающего окна, поэтому во всплывающем меню вам нужно использовать API-интерфейс Chrome и установить разрешение в манифесте Chrome.
chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
console.log(tabs[0].url);
});
Лучше всего использовать API-интерфейс Chrome
Ответ 3
Вам нужно быть осторожным с тем, что вы подразумеваете под "текущей вкладкой". Если у пользователя открыто более одного окна, каждый из них с несколькими вкладками, Chrome определяет "текущее окно" как тот, на котором запущен контент script, который использует chrome.tabs
API. Это случилось со мной, и я решил это, ссылаясь не на "текущее" окно, а на последнее сфокусированное:
chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
// Do something
});
Литература:
https://developer.chrome.com/extensions/windows#current-window
https://developer.chrome.com/extensions/tabs#method-query
Надеюсь, что это поможет!
Ответ 4
Самый простой способ:
console.log('текущий url' + window.location)
Ответ 5
UPDATE: этот метод теперь устарел, поэтому, пожалуйста, не используйте его
В моем случае все вышеизложенное не сработало. Поэтому я использовал это:
chrome.tabs.getSelected(null, function(tab) {
console.log(tab.url)
})
и он отлично поработает! Надеюсь, что это поможет.
Ответ 6
это сработало для меня, попробуйте
chrome.tabs.query({
active: true,
lastFocusedWindow: true
}, function(tabs) {
// and use that tab to fill in out title and url
var tab = tabs[0];
console.log(tab.url);
alert(tab.url);
});
Ответ 7
НЕ используйте getSelected
В соответствии с Документами разработчика Chrome:
chrome.tabs.getSelected
устарел, поскольку Chrome ver.33
Вместо этого используйте:
chrome.tabs.query({active:true}, __someCallbackFunction__)
как второе предложение Мусы.