Подтвердить что ты не робот

Как получить URL текущей вкладки в моем расширении chrome с помощью javascript

Я только начинаю с разработки Google Chrome Extension, и мой проект включает в себя создание расширения, которое при нажатии на него печатает URL-адрес той страницы, которая в настоящее время открыта.

Итак, если я на главной странице google, и я нажимаю мое расширение, мне нужно получить " https://www.google.com/" как мой вывод в расширение.

Мне нужно сделать это с помощью javascript и не могу найти код, который я понимаю и который выполняет эту работу. Я читал об использовании "window.location" и "document.href" и т.д., Но не даст ли мне ссылку только моего расширения, а не текущей вкладки?

Пожалуйста, помогите мне начать. Спасибо заранее.

4b9b3361

Ответ 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__) как второе предложение Мусы.