2012-12-15 11 views
5

Pracuję nad rozszerzeniem chrome, które wstawia element div do elementu body domeny. W tej chwili tworzę program obsługi zdarzeń, który uruchamia ładunek w celu utworzenia elementu. Oznacza to oczywiście, że strona ładuje się całkowicie, a następnie wstawiany jest mój div, co oznacza, że ​​użytkownik widzi stronę bez elementu div, dopóki ładowanie nie zostanie zakończone, a następnie pojawi się div. Chciałbym, aby div był tam podczas ładowania strony. Czy istnieje sposób na przejęcie elementu ciała przed napisaniem jakichkolwiek innych elementów? Czy muszę w jakiś sposób ukryć zawartość, dopóki wszystko nie zostanie załadowane, co oczywiście oznaczałoby, że użytkownik widzi przez jakiś czas pusty ekran.Wstawianie elementu DOM podczas ładowania strony, nie później

Jeśli to możliwe, chciałbym uniknąć jQuery.

+0

Użyj "run_at": "document_end" zagwarantuje, że div zostanie wprowadzony * tak wcześnie, jak to możliwe *, chociaż NIE gwarantuje to, że użytkownicy nie zobaczą tej zmiany w DOM. –

Odpowiedz

1

Nie jestem w 100% pewny, ale patrząc na przewodnik dla programistów rozszerzeń Chrome, wygląda na to, że jeśli używasz Skryptu treści i podajesz pole run_at w manifeście rozszerzenia jako document_start, to powinien on wstrzyknąć pliki przed DOM jest skonstruowany.

+0

Prawidłowo. Uwaga: w document_start, 'document.body jeszcze nie istnieje. Trzeba wstrzykiwać za pomocą 'document.documentElement.appendChild (element);' –

+0

@RobW, więc wstawiony 'div' zostanie umieszczony poza' body'? To wygląda na niepoprawny html. – Stan

+0

@Stan W document_start, jedynym istniejącym tagiem jest '', więc jest to jedyna opcja. I nie spotkałem strony, na której ta metoda się nie udała. –

Powiązane problemy