Jestem nowy w rozszerzeniach chrome. Chciałbym utworzyć proste rozszerzenie chrome, które wyskakuje alert z tytułem aktualnej strony html. Kiedy wykonuję: alert(document.title)
, Nie otrzymuję tego, ponieważ obiekt dokumentu nie należy do strony, ale do skryptu rozszerzenia (czy jest poprawny?) Jak uzyskać właściwy obiekt dokumentu?uzyskiwanie dostępu do bieżącej strony html z rozszerzenia chrome
Odpowiedz
Można użyć tabs module:
chrome.tabs.getCurrent(function(tab) {
alert(tab.title);
});
skrypty Treści są najprostszym sposobem, aby przejść:
Rozwiń swój plik manifestu z tym kodem:
...
"content_scripts": [
{
"matches": ["http://urlhere/*"],
"js": ["contentscript.js"]
}
],
...
skryptu Zawartość (automatycznie wykonywane na każdej stronie, jak wspomniano w matches
w pliku manifestu):
alert(document.title)
zaletą korzystania z treści skryptów ponad chrome.extension.*
metody jest to, że rozszerzenie nie wymaga sc uprawnienia ary, takie jak tabs
.
Zobacz także:
Na co robisz wszystko co nee d, aby zrobić to
chrome.tabs.executeScript({
code: 'alert(document.title)'
})
chrome.tabs.executeScript API pozwala na wykonywanie kodu JavaScript w bieżącej strony zamiast w rozszerzeniu tak to działa dobrze, ale jeśli chcesz używać nazwy strony później w bardziej złożonej rozszerzeniu niż bym po prostu robić to, co pimvdb nie
Czy to wymagałoby dodania "niebezpiecznych eval" do CSP? – Xan
używam tego rozszerzenia, aby zrobić coś podobnego:
main.js:
(function(){window.prompt('Page title:', document.title)})()
manifest.json:
{
"background": {"scripts": ["background.js"]},
"browser_action": {
"default_title": "popup_title"
},
"name": "popup_title",
"description": "Display the page title for copying",
"permissions": [
"tabs",
"http://*/*",
"https://*/*"
],
"version": "1.0",
"manifest_version": 2
}
background.js:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(tab.id, {file: "main.js"})
});
- 1. Uzyskiwanie dostępu do ramek iframe z rozszerzenia skryptu treści Chrome
- 2. Uzyskiwanie bieżącej strony
- 3. Chrome/Firefox: źródło dostępu rozszerzenia
- 4. Uzyskiwanie dostępu do "bieżącej klasy" z niestandardowego MarkupExtension WPF
- 5. Uzyskiwanie adresu URL bieżącej strony w Grails
- 6. Uzyskiwanie dostępu do rozszerzenia Swift z Objective-C
- 7. jQuery wykorzystanie w tle strony chrome rozszerzenia
- 8. Rozszerzenia Chrome do cichego drukowania?
- 9. Błąd rozszerzenia Chrome messageMessage z skryptu treści do tła html
- 10. Uzyskiwanie dostępu do zmiennych usercript z konsoli Google Chrome
- 11. Jak wyświetlić ikonę strony rozszerzenia rozszerzenia Chrome na pasku adresu?
- 12. Uzyskiwanie adresu URL bieżącej strony przy użyciu Selenium WebDriver
- 13. Uzyskiwanie dostępu do atrybutów metod przy użyciu metody rozszerzenia
- 14. Uzyskiwanie dostępu do plików w pliku rozszerzenia obb
- 15. Uzyskiwanie dostępu do niestandardowej strony wzorcowej za pomocą formantu użytkownika
- 16. Zmień ikonę rozszerzenia Chrome
- 17. Strona rozszerzenia rozszerzenia Chrome Pokaż stronę Strona
- 18. Dostęp do plików cookie z rozszerzenia Google Chrome
- 19. Manifest rozszerzenia Chrome 'Mecze'
- 20. Prawidłowy sposób dostępu do konfiguracji bieżącej aplikacji
- 21. Uzyskiwanie dostępu do zmiennej JavaScript w pliku HTML
- 22. Link do bieżącej strony bez ciągu zapytania
- 23. Uzyskiwanie dostępu do kontenera dokera z iOS Simulator
- 24. Uzyskiwanie dostępu do ResourceDictionary z WPF UserControl
- 25. Uzyskiwanie dostępu do obiektów z innego procesu
- 26. Uzyskiwanie dostępu do ScrollViewer ListBox z C#
- 27. Uzyskiwanie dostępu do modelu z szablonu
- 28. Uzyskiwanie dostępu do komponentów .NET z Powershell
- 29. Uzyskiwanie dostępu do metadanych z mp3 Python
- 30. Uzyskiwanie dostępu do FacesContext z usługi WWW
@ Rob W: I właśnie zadał podobne pytanie http://stackoverflow.com/questions/1964225/accessing-current-tab -dom-object-from-popup-html. Ale w moim przypadku rozszerzenie wysyła informacje z bieżącej karty do mojej aplikacji do zakładek. Sposób, w jaki rozumiem twoją odpowiedź, zatem każda strona, którą spróbuję dodać do zakładek, musi być zawarta w pliku manifestu. Czy to jest poprawne? W takim przypadku będzie to bezużyteczne. Dzięki. – Zeynel
@Zeynel Następnie dodaj '" * "': '" matches ": [" * "],' –
@ Rob W: Thanks. Być może nie robię tego dobrze, ale musiałem wprowadzić "" mecze ": [" http: // */* "]," aby działał zgodnie z tym http://code.google.com/chrome/extensions /match_patterns.html w przeciwnym razie dostałem 'Missing scheme separator', którego jeszcze nie wypróbowałem, ale przynajmniej przesłane rozszerzenie. Dzięki jeszcze raz. – Zeynel