• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Web Extensions Firefox - funkcja load()

Object Storage Arubacloud
0 głosów
486 wizyt
pytanie zadane 28 czerwca 2018 w JavaScript przez precell Początkujący (470 p.)

Na wstępie witam szanownych użytkowników forum :-)

3 lata temu napisałem dodatek do FireFoxa, który dodawał mi różne wodotryski do gry przeglądarkowej. System rozszerzeń działał wtedy jeszcze na XUL.

Link do dodatku.

Stosunkowo niedawno postanowiłem zaktualizować wtyczkę do Web Extensions. No i zaczęły się schody ;-) Większość problemów sam rozwiązałem, został tylko jedne.

Może zacznijmy od problematycznego kodu w js (jquery) :-)

	$('.magazyny-z').load('empire.php tr:eq(2) td:last-child');

Kod ten w starej wersji FF ładował mi w diva, który znajduje się na każdej podstronie, komórkę tabeli z podstrony https://s1.universe4k.com/game/empire.php

Niestety w WE powyższy kod nie dział. Przejrzałem chyba cały internet w tym dokumentację Mozilli i pupa ;-) Trafiłem w końcu do was, może ktoś z was miał podobny problem i mógłby mi podsunąć możliwe rozwiązanie :-)

Mój plik manifest.json:

{
  "manifest_version": 2,
  "name": "Polish style universe4k.com",
  "version": "2.0",
  "description": "Skrypt upiększający grę universe4k.com",
  "icons": {
    "48": "icon.png"
  },
  "content_scripts": [
    {
      "css": [
        "data/style.css",
        "data/menu.css",
        "data/spoiler.css"
      ],
      "js": [
        "data/jquery.min.js",
        "data/szkielet.js",
        "data/menu.js",
        "data/spoiler.js"
      ],
      "matches": [
        "*://*.universe4k.com/game/*"
      ],
      "run_at": "document_start"
    }
  ],
  "web_accessible_resources": [
    "content/grafika/*.png",
    "content/grafika/*.gif",
    "content/grafika/*.jpg"
  ]
}

I taki mały offtop ;-) Na ciemnym motywie niniejszego forum ikona kanału rss i ikona "dodaj do ulubionych" nachodzą na siebie.

1 odpowiedź

0 głosów
odpowiedź 28 czerwca 2018 przez adrian17 Ekspert (344,860 p.)

Nie ma żadnych błędów w konsoli?

Pierwsza intuicja: spróbuj dodać do manifestu

"permissions": [
    "*://s1.universe4k.com/*"
]

 

komentarz 28 czerwca 2018 przez precell Początkujący (470 p.)

Próbowałem, nie działa.

Konsola pokazuje:

Your addon does not have any document opened yet.

Tego to już w ogóle nie rozumiem. W starym FF mogłem bez problemu debugować dodatek.

Rozszerzenie sprawdzam tymczasowo wczytując dodatek.

komentarz 28 czerwca 2018 przez adrian17 Ekspert (344,860 p.)
Gdzie to się pokazało?

Komunikaty content scriptów pokażą się w zwykłej konsoli strony, obok innych komunikatów.
komentarz 28 czerwca 2018 przez precell Początkujący (470 p.)

about:debugging

Opcja debuguj przy moim dodatku.

Konsola pokazuje:

Zablokowano wczytywanie mieszanych treści aktywnych „http://wymiatacze24.pl/wp-content/plugins/wp_pro_ad_system/includes/api/load_adzone.php?zoneID=3”[Więcej informacji]
jquery.min.js:4:26403
Błąd mapy źródła: TypeError: NetworkError when attempting to fetch resource.
URL zasobu: moz-extension://0cfa367e-bb74-4044-9af9-56612d44c5c7/data/jquery.min.js
URL mapy źródła: jquery.min.map[Więcej informacji]

Wymiatacze24.pl zaraz usunę, to moja stara, nieistniejąca już strona strona.

 

komentarz 28 czerwca 2018 przez adrian17 Ekspert (344,860 p.)

about:debugging

Opcja debuguj przy moim dodatku.

Strzelam że to ma tylko sens, gdy rozszerzenie ma background page - Twój ma tylko content skrypty.

Nic się nie pokazuje w konsoli, gdy wykonujesz $(...).load() ? Próbowałeś postawić tam breakpointa w debuggerze, żeby sprawdzić czy program w ogóle tam wpada?

komentarz 28 czerwca 2018 przez precell Początkujący (470 p.)

BreakPoint? Jak to się robi? Ja tylko amatorsko dłubie sobie w kodzie.

Ale gdy zaznaczyłem w konsoli "Wstrzymuj na wyjątkach" to mi podświetla na czerwono:

	$('td[width="50%"]:eq(1)').load('deff.php table[class="main"]:eq(4)'); //Obrona

Dodam tylko, że na WaterFox gdzie działa jeszcze XUL, stara wersja mojego dodatku działa bez problemu.

W nowej wersji zmieniłem tylko sposób linkowania do plików lokalnych. Czyli zmieniłem chrome://nazwa pakietu/ na

chrome.extension.getURL

 

komentarz 28 czerwca 2018 przez adrian17 Ekspert (344,860 p.)
Podrzucisz kod, który teraz testujesz? Wrzucisz gdzieś na GH?
komentarz 28 czerwca 2018 przez precell Początkujący (470 p.)
https://openload.co/f/XRUT-DxYMiU/u4k.rar

Proszę cała paczka. Proszę się nie przestraszyć mojego bajzlu w kodzie :-)

Plik szkielet.js
komentarz 28 czerwca 2018 przez precell Początkujący (470 p.)
Zapomniałem dodać, że na WE żadna funkcja load() nie działa, gdy chcę przerzucić jakiś element z jednej podstrony na inną.
komentarz 28 czerwca 2018 przez adrian17 Ekspert (344,860 p.)

To jeszcze jedna propozycja:

$('.magazyny-z').load('empire.php tr:eq(2) td:last-child');

Użyj pełnego URLa zamiast samego "empire.php".

komentarz 28 czerwca 2018 przez precell Początkujący (470 p.)
edycja 1 lipca 2018 przez precell
Działa nawet bez "permissions" :-) A to ciekawe, wcześniej próbowałem i nie działało.

To rozwiązanie na krótką metę, bo jak będę chciał grać na innym serwerze, to przecież nie będę tworzył oddzielnego dodatku. Mimo wszystko dzięki Ci bardzo :-)

Wdrożę Twoje rozwiązanie, w między czasie poszukam innego.

Jeszcze raz dzięki za poświęcony czas :-)

Podobne pytania

+3 głosów
1 odpowiedź 445 wizyt
0 głosów
1 odpowiedź 957 wizyt
0 głosów
2 odpowiedzi 309 wizyt
pytanie zadane 29 kwietnia 2018 w HTML i CSS przez Bartocho Nowicjusz (120 p.)

92,566 zapytań

141,420 odpowiedzi

319,604 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...