[ajax] [wikipedia] Skrypt z uzupełnianiem tytułów artykułów nie działa w Operze (i IE)

w dziale Strony WWW w Operze
adas napisał(a):

http://en.wikipedia.org/w/index.php?title=User:Zocky/AutoComplete.js - czy ktoś by przejrzał ten skrypt w poszukiwaniu jakichś konstrukcji z powodu których ten skrypt w Operze nie działa? Nie trzeba poprawiać - tylko kierunek wskazać. Ja spróbuje autorowi przekazać wink

Skrypt ma rozwijać takie okienko z uzupełnianiem nazw artykułów wpisywanych w wyszukiwarkę. Więcej informacji (i zrzut): http://en.wikipedia.org/wiki/User:Zocky/Auto_Complete

Sombria napisał(a):

W addEventListener trzeba zamienić true na false. Nie wiem też jak się będzie sprawowało document.write, kiedy skrypt będzie dołączany w zewnętrznym pliku (ja testowałam wklejając go w treści strony), ale z tym autor sobie bez problemu poradzi smile

PS. Bardzo fajny skrypt. Postuluję udostępnienie go w postaci UserJS dla Opery, żeby każdy mógł sobie zainstalować. idea

adas napisał(a):

Originally posted by Sombria:

Postuluję udostępnienie go w postaci UserJS dla Opery, żeby każdy mógł sobie zainstalować.


Ja postulatu nie spełnię wink

Originally posted by Sombria:

W addEventListener trzeba zamienić true na false.


A co to daje? Znaczy czy tak jest poprawnie wszędzie czy tylko poprawnie w Operze?

Originally posted by Sombria:

Nie wiem też jak się będzie sprawowało document.write


Sprawuje się dobrze - znaczy działa mi na pl.wiki (na samym dole wstawiłem do tego kod).

Sombria napisał(a):

Originally posted by adas:

A co to daje? Znaczy czy tak jest poprawnie wszędzie czy tylko poprawnie w Operze?


O ile dobrze zrozumiałam dokumentację, to w Operze jest ok.
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow

A capturing EventListener will not be triggered by events dispatched directly to the EventTarget upon which it is registered.


http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-flow

If true, useCapture indicates that the user wishes to add the event listener for the capture phase only, i.e. this event listener will not be triggered during the target and bubbling phases. If false, the event listener will only be triggered during the target and bubbling phases.



Zresztą nie wiem dlaczego autor chciał to zastosować. Jakieś dziwactwo FF?

Originally posted by adas:

Ja postulatu nie spełnię

Myślałam, że masz wpływy tam gdzie trzeba wink

adas napisał(a):

Originally posted by Sombria:

Myślałam, że masz wpływy tam gdzie trzeba


Utworzenie UserJS się nie podejmę wink Mogę to rozpropagować tam gdzie mam wpływy: http://pl.wikipedia.org/wiki/Wikipedysta:Adziura/Auto_Complete

Autor też poinformowany. Ale jeżeli chodziło ci o dla każdego ten skrypt to wątpię - mamy już i tak przeładowanie skryptami domyślnymi wink

Sombria napisał(a):

Originally posted by adas:

Ale jeżeli chodziło ci o dla każdego ten skrypt to wątpię - mamy już i tak przeładowanie skryptami domyślnymi


Nie, nie chciałam uszczęśliwiać nikogo na siłę. Myślałam tylko, że masz kontakt z autorem i mu przekażesz postulat smile

Aaaach, i zapomniałam o jednej ważnej rzeczy. Żeby to działało prawidłowo, trzeba w funkcji ac$boxKeyPress dodać na końcu linijkę
e.preventDefault();
Może po to było to true confused

A UserJS jest praktycznie napisany. Wystarczy wziąć całość w
if (window.location.hostname.indexOf('wikipedia.org') != -1) {
}

Ostatnią linijkę zamienić na
document.addEventListener('DOMContentLoaded', ac$init, false);

I trzeba coś zrobić z document.write. Zamiast tego można wstawić
    var i = document.createElement('style');
    i.innerHTML = 'treść stylu';
    document.selectSingleNode('//head').appendChild(i);

adas napisał(a):

Originally posted by Sombria:

Aaaach, i zapomniałam o jednej ważnej rzeczy. Żeby to działało prawidłowo, trzeba w funkcji ac$boxKeyPress dodać na końcu linijkę


http://pl.wikipedia.org/w/index.php?title=Wikipedysta%3AAdziura%2FAutoComplete.js&diff=8689862&oldid=8678100 - w to miejsce?

Autor poinformowany - nie wiem czy to poprawi - jak nie to sam mu to poprawię wink

Sombria napisał(a):

Originally posted by adas:

w to miejsce?

Tak. up Bez tego skróty klawiaturowe nie działały jak trzeba.

Originally posted by adas:

Autor poinformowany - nie wiem czy to poprawi - jak nie to sam mu to poprawię

A w te poprawki nie popsuły nic w działaniu skryptu pod FF?

adas napisał(a):

autocomplete_wikimedia.js
No to przygotowałem smile Działa na wszystkich projektach Wikimedii (Wikipedia, Wikicytaty, Wikiksiążki itp.) w każdym języku smile

Originally posted by Sombria:

A w te poprawki nie popsuły nic w działaniu skryptu pod FF?


Wydaje mi się, że działa poprawnie.