Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Opera + magic function dla metod prywatnych obiektów
erix
post
Post #1





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Najgorsza część kampanii wrześniowej za mną, więc można trochę pokodzić dla siebie.

Mianowicie, piszę takiego UserJS dla Blipa do Opery.

I cały czas mnie daje się we znaki jeden problem: czy można w jakiś sposób podmienić funkcję zdefiniowaną jako prywatną? Lub chociaż wywołać cokolwiek przed "fabrycznymi"?

Mam coś takiego:
[JAVASCRIPT] pobierz, plaintext
  1. BLIP.dashboardInputWidget = function (f) {
  2. //...
  3. var s = function (a) {
  4. textArea.switchRecipient(o.selectedRecipientName() || null);
  5. textArea.htmlElement.focus()
  6. };
[JAVASCRIPT] pobierz, plaintext


I jak wywołać moją funkcję przed tą zdefiniowaną w powyższej zmiennej? Callback jest wywoływany przez Event.observe w Prototype.

Jak się nie da, to chociaż w jaki sposób wepchnąć swoje zdarzenie na początek kolejki handlerów dla zdarzeń danego obiektu? unobserve tylko zdejmuje, ale już nie zwraca uchwytu do poprzedniego callbacka (IMG:style_emoticons/default/sad.gif)

Bez sensu jest zdejmowanie całego zdarzenia i wsadzanie fabrycznego kodu do swojego UserJS-a tylko z tego powodu, że chcę przed nim jedną linijkę wykonać...

Any ideas?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




[JAVASCRIPT] pobierz, plaintext
  1. BLIP = {};
  2. BLIP.dashboardInputWidget = function (f) {
  3. alert('cos');
  4. }
  5.  
  6. BLIP.oldDashboardInputWidget = BLIP.dashboardInputWidget;
  7.  
  8. BLIP.dashboardInputWidget = function(f) {
  9. alert('ziomek');
  10. BLIP.oldDashboardInputWidget(f);
  11. }
  12.  
  13. BLIP.dashboardInputWidget('g');
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 12.10.2025 - 16:07