Czy możliwe jest posiadanie niestandardowych funkcji w google-chrome, które będą zawsze dostępne w konsoli (bez względu na załadowaną stronę)? Na przykład chciałbym mieć funkcję o nazwie echo, która byłaby tylko opakowaniem wokół pliku console.log. To po prostu oszczędza trochę pisania, ale później mogę chcieć stworzyć użyteczną funkcjonalność debugowania.dodanie niestandardowej funkcjonalności do konsoli Chrome
Odpowiedz
Cóż, łatwo to zrobić. To, czego potrzebujesz, to stworzyć content script. Ten skrypt zostanie wprowadzony na dowolnej stronie i utworzy niezbędne funkcje globalne, których użyjesz w konsoli. Najtrudniejszą częścią jest to, jak sprawić, by te funkcje scrtipt do zawartości niestandardowej były częścią rzeczywistego obiektu window
, ponieważ zwykle nie można uzyskać dostępu do funkcji lub zmiennych zdefiniowanych w skrypcie treści z reszty kodu javascript, który nie znajduje się w treści. scenariusz. Skrypty treści działają w tak zwanym środowisku izolowanym.
Skrypty treści są wykonywane w specjalnym środowisku zwanym izolowanym światem. Mają dostęp do DOM strony, do której są wstrzykiwani, ale nie do żadnych zmiennych JavaScript ani funkcji tworzonych przez stronę. Wygląda na każdy skrypt treści tak, jakby na stronie, na której jest uruchomiony, nie ma innych skryptów JavaScript. To samo dotyczy odwrotnej strony: JavaScript działający na stronie nie może wywoływać żadnych funkcji ani dostępu do zmiennych zdefiniowanych przez skrypty treści.
Ale istnieje wymyślne rozwiązanie.
zdefiniować swój plik manifestu następująco:
manifest.json
{
"name": "Content script",
"version": "0.1",
"manifest_version": 2,
"content_scripts": [{
"matches": ["http://*/*"],
"js": ["console.js"]
}]
}
I skrypt treści:
console.js
function customConsole() {
window.myNewFunction = function() {
console.log("Hello I'm available from console.");
};
}
var script = document.createElement('script'),
code = document.createTextNode('(' + customConsole + ')();');
script.appendChild(code);
(document.body || document.head || document.documentElement).appendChild(script);
więc określić twoje nowe funkcje jako funkcje globalne, więc t Kapelusz, którego możesz użyć w console
.
Zobacz także ten post
Ty i Chrome Rock! To jest naprawdę tak proste_. Mógłbym powtórzyć ("hello world!"); w pięć minut :). – clime
- 1. Używanie niestandardowej konsoli do debugowania aplikacji konsoli programu Visual Studio
- 2. Zamykanie niestandardowej zakładki Chrome
- 3. Błąd konsoli Chrome: chromeHidden.Port.dispatchOnDisconnect
- 4. Dodaj adres URL sugestii do niestandardowej wyszukiwarki w chrome
- 5. Synchroniczne logowanie konsoli w Chrome
- 6. Polecenie konsoli Symfony 2 służące do tworzenia niestandardowej bazy danych
- 7. Trace na konsoli Chrome/przeglądarce
- 8. Chrome dodanie nagłówka pochodzenia do wniosku tego samego pochodzenia
- 9. Posłuchaj zdarzenia postępu na karcie niestandardowej Chrome
- 10. Niebieski numer w konsoli deweloperów Chrome?
- 11. Niestandardowa inspekcja obiektów w konsoli rozwojowej Chrome
- 12. Jak korzystać z konsoli console.log() do debugowania rozszerzenia Chrome?
- 13. Chrome: przejdź do adresu URL za pomocą konsoli
- 14. Uzyskiwanie dostępu do zmiennych usercript z konsoli Google Chrome
- 15. Błąd wyrzucania przez rozszerzenie Chrome w konsoli
- 16. Jak wyświetlić pełny obiekt w konsoli Chrome?
- 17. Modyfikuj document.cookie w konsoli Chrome nie działa
- 18. Jak skopiować obiekty z okna konsoli Chrome?
- 19. Zapisywanie danych wyjściowych konsoli w przeglądarce Chrome
- 20. Jak skopiować ślad stosu z konsoli Chrome?
- 21. Symulowanie funkcjonalności packusdw z SSE2
- 22. Uniwersalny javascript do ustawiania funkcjonalności strony głównej
- 23. Dodawanie funkcjonalności zrzutów ekranu do rozszerzenia firefox
- 24. Zwracanie funkcji Narzędzia do Chrome Chrome
- 25. Dodanie fragmentu do dialogowym
- 26. Dodanie parametru do zakresu
- 27. dodanie do zdarzenia window.onload?
- 28. Jest szpiegiem funkcjonalności
- 29. Przesłanianie sterowania + s (zapisywanie funkcjonalności) w przeglądarce
- 30. Testowanie funkcjonalności dla aplikacji Mac:
Może możesz utworzyć wtyczkę. Konsola działa w stosunku do bieżącej strony, więc powinna być wykonalna. – Blender
Dzięki za wskazanie kierunku wtyczki. Zobaczmy, czy jestem wystarczająco "leniwy", aby rzeczywiście zrobić dla tego opakowania ... – clime