![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki problem. Pisze dodatek do Google Chrome. Dodatek ten ma za zadanie sprawdzać coś w mojej aplikacji PHP i wyświetlać dane w Chrome za pomocą notyfication co 1 min. Wszystko mam tylko nie wiem jak przekazać dane z mojego programu do JavaScript. Aby dostać w jaki kolwiek sopsób dane musze wywołać stronę php na innym serwerze. Ostatni pomysł był taki że uruchomię stronę w ten sposób: plik .js
dane pobiorę tak: ppp = my_window.window.document.getElementById('nazwa'); a w pliku php niestety nie działa. Jakieś pomysły ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W PHP wyświetlasz dane jako json i w JS je odbierasz.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Można jakiś przykład ?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
ja musze uruchomić w pliku background.js dla chrome plik php z mojego serwera. I pobrać jakieś smienne lub jakikolwiek sposób dane do tego background.js
w php daje
w backgroud.js
nie działa |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
A dodałeś bibliotekę jquery?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
mam prawie tak samo i nic z tego ciąge $ reference error w background.js
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie podajesz ścieżki do skryptu.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
skopiowałem do tego samego katalogu, przy uruchamianiu rozszerzenia nie krzyczy.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nigdy nie pisałem rozszerzeń dla przeglądarek, ale widzę różnice między
Cytat "matches": ["http://jquery.com/*"], a Cytat "matches": [ "http://*/*", "https://*/*"] Czy tego nie trzeba zamienić na link bezpośredni? Np. http://code.jquery.com/jquery-2.0.0.js |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
po zmianie to samo błąd nie wyskakuje w pliku manifest, jak tam coś jest nie tak to zaraż krzyczy przy uruchamianiu rozrezerzenia. Błąd zgłasza linia z background.js dokładnie pod tą linią:
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jaki błąd? I czy dane są zwracane pod tym adresem?
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
uncaught ReferenceError: $ is not defined
dokładnie taki błąd |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat "content_scripts": [ { "js": [ "jquery-2.0.0.js" ], "matches": [ "http://code.jquery.com/*"] }] Na pewno tak to masz? |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
jak tak daje to szuka pliku lokalnie w katalogu z moim dodatkiem do chroma
Niby jQuery sie ładuje z dysku ale nie chce działać bo cokolwiek odwoływać sie bedzie do $ to błąd. Ciekawe tylko dlaczego z zewnętrznych linków si nie ładuje jQuery tylko mimo wszystko szuka lokalnie. od wersji chrome 18 tylko deklaracja jquery w lokalnym katalogu. inna sprawa bo z konsoli działa w funkcji jquery nie działa. Jak to obejsc ? przykład
nie wie co to getJSON |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie bardzo rozumiem gdzie tam jest odpowiedź.
U mnie funkcja działa dobrze ale jak wywołam ją ręcznie z konsoli. Jeśli uruchomię komponent to plik background.js wskazuje błąd w miejscu getJSON. funkcja napisana wyżej. jak dam function show($) to przynajmniej nie czepia sie o jQuery jak nie dam to się czepia. |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
dawno nie pisałem pluginów pod przeglądarki, ale możesz także korzystać z narzędzi deweloperskich tak jak na stronie... dodatkowo jQuery masz podpinane pod globalny obiekt window który masz w "ramce", nie jest on tworzony w globalnym obiekcie przeglądarki, z resztą to by nie miało sensu... pisząc plugin jesteś o warstwę wyżej niż na stronie internetowej, do czego to przyrównać(IMG:style_emoticons/default/questionmark.gif) np. na stronie masz dołączone jQuery, ale na stronie masz też iframe, o ile adres ramki jest z tego samego serwera to masz możliwość odwołania się do elementów znajdujących się w tej ramce... z pluginu będąc warstwę wyżej nie masz ograniczenia na politykę bezpieczeństwa...
zależy co dokładnie chcesz napisać i do czego to narzędzie ma służyć... może wystarczyło by stworzenie czegoś prostszego jak np. userscript?? warstwą logiki byłbyś od razu na poziomie strony internetowej... jak dam function show($) to przynajmniej nie czepia sie o jQuery jak nie dam to się czepia. gdyż stworzyłeś zmienną $ i ma ona wartość undefined jeśli nie podałeś argumentu wywołując tą funkcję... |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
mam swoją aplikację napisaną w php. Jedną z funkcji aplikacji jest wysyłanie wiadomości między użytkownikami. Działa sobie ta aplikacja na jakims serwerku. Wadą jes że trzeba aplikacje miec otwartą przez przeglądarkę i otwartą stronę z nią. Chciałem napisać plugin do chrome który sprawdzałby czy jest wiadomość i wyświetlać komunikat notification jak gtalk. To wszystko już mam. Problem polega na tym ze musze informacje o wiadomościach wydobyć z bazy mysql do której dostęp jest tylko lokalny. Więc napisałem w php funkcje którea do zmiennych zwraca to co powinno pokazać się w komunikacie chroma (notification).
Wiec dane mam po uruchomieniu: http://localhost/chrome/message.php mam napisane że co sekunde sprawdzam i wywołuje funkcje show która to pobiera dwie zmienne. I to dział bo sprawdzałem w konsoli dokładnie ten kod:
natomiast jak ta funkcja jest uruchamiana co sekunde to odrazu dostaje komunikat czepiający się o getJSON. To samo skopiowane do konsoli działa. Nie bardzo rozumiem . To tak jakby w funkcji nie było dostępu do jQuery. dlatego funkcje zaczełem wywoływać show($); Tak mniej więcej wygląda funkcja:
Ten post edytował phpsuse 23.05.2013, 18:59:00 |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
teraz po treningu sobie tak sączę piwko i luknąłem na dokumentację (ale wolę czytać Qt C++ niż to ;p)... masz narzędzia developerskie to upewnij się, czy masz problem z samym jQuery (zasięgiem zmiennych, czy masz tam gdzie stosujesz tą funkcję dostępne jQ) czy może z polityką bezpieczeństwa zaimplementowaną w przeglądarce - angielski znam po łebkach ale stawiam na politykę bezpieczeństwa, nie widzę też całości kodu i dawno nie pisałem rozszerzenia to może i masz też nie zdefiniowany w tym miejscu jQ...
przeczytaj to: Something to Declare i zwróć uwagę na "permissions"... pozdro... edit... przeglądam po łebkach i czytam wybiórczo, ale patrząc na Twój plik manifest już widzę, że miałem rację Cross-Origin XMLHttpRequest, dodatkowo jeśli operujesz na zakładkach to chyba musisz mieć dorzucone "tabs"... ogólnie to lektura tego manuala... masz tam jeszcze przykładowe pluginy... Ten post edytował zegarek84 23.05.2013, 22:18:20 |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 22.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ja mam taki błąd:
Uncaught TypeError: Cannot call method 'getJSON' of undefined wywołuje to z konsoli
wpisuje ppp i dostaje odpowiedź prawidłową. Teraz jak uruchomoe tą funkcję
w taki sposób show($); to okienko notyfikacji sie pojawia a nie działa wczytywanie zmiennych z pliku message.php a i plik manifest:
Inaczej ta funkcja odpalona z konsoli działa:
ta sama funkcja jako dodatek zwraca błąd: Uncaught ReferenceError: $ is not defined w lini:
co jest grane już mnie trafa ? Ten post edytował phpsuse 24.05.2013, 06:29:19 |
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
piszesz co chcesz i nie wszystko udostępniasz...
masz linka Using jQuery to build Google Chrome extensions ale jeszcze raz napiszę, iż kontekst strony to nie to samo co kontekst pluginu - masz inne zmienne!!! podstawy js tu się kłaniają i dokumentacja google chrome... edit... zainstaluj sobie i przejrzyj źródła rozszerzenia jQuery Shell ale prawda jest taka, że nie bardzo wiesz w których plikach kiedy jesteś... jeszcze możesz przejrzeć źródła Inject jQuery gdzie możesz załączać jQ na dowolnej stronie - jednak nie o to Ci chodziło tylko o skorzystanie z jQ w pluginie!!! dokumentacja i narzędzia developerskie to podstawa... a jeśli chcesz zaimplementować userscript w google chrome na wzór GM z mozilli to dodatek to rozszerzenie typu Tampermonkey Ten post edytował zegarek84 24.05.2013, 15:38:05 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 11:22 |