Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Rozszerzenie dla Chrome
shl
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Napisałem proste rozszerzenie dla Chrome, jak wklejam kod javascript w consoli na stronie docelowej wszystko fajnie dziala ( wyskakuje po prawej div z 3 przyciskami, po kliknieciu ktorych w formularzu wpisuja sie dane przypisane do przyciskow) problem powstaje jak wczytam pliki test.js i manifest.json ... rozszerzenie dziala pojawia sie na odpowiedniej stronie po wejsciu, ale po kliknieciu w przyciski nie wypelnia sie formularz, pojawia sie komunikat o bledzie:

Uncaught ReferenceError: addText1 is not defined
onclick


nie wiem jak inaczej zdefiniowac dane?

plik test.js

  1.  
  2. console.log("test.js Started .. ");
  3.  
  4. function addText1() {
  5. var tekst1 = document.getElementById('mailBody');
  6. tekst1.value = tekst1.value + "jakis inny tekst numer 3 .........";
  7. }
  8. function addText2() {
  9. var tekst2 = document.getElementById('mailBody');
  10. tekst2.value = tekst2.value + "jakis tekst numer 2 inne ... ";
  11. }
  12. function addText3() {
  13. var tekst3 = document.getElementById('mailBody');
  14. tekst3.value = tekst3.value + "Kolejny jakis tekst numer 3 inne ... ";
  15. }
  16.  
  17. var element = document.createElement('div'); //tworzymy nowego Diva
  18. element.id = 'blok';
  19. element.style.position = 'fixed';
  20. element.style.right= '0px';
  21. element.style.top = '190px';
  22. element.style.width = '100px';
  23. element.style.height = '100px';
  24. element.style.backgroundColor = '#FF6633';
  25. element.innerHTML = "<strong>Odpowiedzi</strong><br><button id=\"mybutton\" onclick=\"java script: addText1();\">tekst 1</button><br><button onclick=\"java script: addText2();\">tekst 2</button><br><button onclick=\"java script: addText3();\">tekst 3</button>";
  26. var body = document.getElementsByTagName('body')[0]; //pobieramy body
  27. body.appendChild(element); //wstawiamy element do drzewa dokumentu
  28.  


plik manifest.json

  1. {
  2. "version": "1.0.0",
  3. "name": "moj-test",
  4. "manifest_version": 2,
  5. "description": "Wykonanie: JA",
  6. "permissions": [
  7. "https://*/*",
  8. "http://*/*",
  9. "clipboardRead",
  10. "clipboardWrite",
  11. "cookies",
  12. "tabs",
  13. "notifications"
  14. ],
  15. "icons": {
  16. "16": "images/icon16.png",
  17. "48": "images/icon48.png",
  18. "128": "images/icon128.png"
  19. },
  20. "content_scripts": [
  21. {
  22. "matches": [
  23. "http://www.adres.pl/*"
  24. ],
  25. "js": [
  26. "test.js"
  27. ]
  28. }
  29. ]
  30. }
Go to the top of the page
+Quote Post
lukasz1985
post
Post #2





Grupa: Zarejestrowani
Postów: 205
Pomógł: 43
Dołączył: 5.03.2012

Ostrzeżenie: (0%)
-----


Nie jestem w stanie pomóc ale zadam pytanie: czy naprawdę chcesz pisać rozszerzenie dla Chrome'a? Czy problem, który chcesz rozwiązać pisząc to rozszerzenie nie może być rozwiązany przy pomocy innych narzędzi/języka programowania? Pytam ponieważ odradzam z korzystania z przeglądarek jako platform tworzenia aplikacji, które nie mają stricte internetowego charakteru. Głównie ze względu na zmienność API. Z mojego doświadczenia wynika, że różne przeglądarki mają tendencję do zaniechania przestarzałych API i odrzucania nie kompatybilnego kodu. Często też zdaża się, że funkcje w nowej wersji nie działają tak jak powinny/działały we wcześniejszej.
Głównie dotyczy to właśnie Chrome'a ponieważ firma Google nie przywiązuje większej wagi do stabilności swojego oprogramowania.
Go to the top of the page
+Quote Post
shl
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Odpowiem tak, to bardzo proste rozszerzenie, a bardzo pomaga przy pracy. Odpisujac na baaardzo duzo maili, mam od kilku do kilkunastu szablonow odpowiedzi, pytania się bardzo często powtarzają więc łatwo można wkleic gotowa odpowiedz dopisujac jedno dwa zdania. Oczywiscie mozna wchodzic w plik tekstowy kopiuj wklej odpowiedni szablon ... stad pomysl na rozszerzenie. Pasek z przyciskami po kliknieciu ktorych automatycznie wpisuje mi sie odpowiedz w danym wariancie, doklepuje jedno zdanie i wysylam, kolejny mail inny szablon jednym kliknieciem itd. Usprawnia to mega prace przy odpowiedzi na duza ilosc maili z bardzo czesto podobnymi pytaniami.
Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #4





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


nie robiłem rozszerzeń do Chrome, ale mój pierwszy guess - czy nie robiąc rozszerzenia twój kod JS nie odpala się przypadkiem w jakimś sandboxie?
jeśli by tak było, znaczyć by to mogło to, że funkcja addText1() deklarowana byłaby w innym kontekście niż kontekst strony (czyli nie byłaby globalna).

(ale nie muszę mieć racji z tym, to tylko taki luźny pomysł)
Go to the top of the page
+Quote Post
shl
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Tak masz racje jest odpalany wlasnie w takim jakby sandboxie.

Ok poradzilem sobie inaczej.

Temat do zamkniecia
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 00:36