Domanda

Ho lavorato su un BHO / barra degli strumenti scritto in C # che ascolta gli eventi HTML generati sulla pagina Web corrente del browser. La soluzione include una classe riutilizzabile chiamata HtmlPageEventManager il cui scopo è quello di iscriversi a un determinato elenco di eventi HTML per ogni nuova pagina Web aperta. Un obiettivo è collegare i gestori non appena l'utente può iniziare a interagire con gli elementi della pagina, anche prima che il caricamento della pagina sia completo. Usare questa classe è semplice: basta chiamare il costruttore:

var evts = new List() {
    HtmlEvent.onclick, HtmlEvent.ondblclick, HtmlEvent.onkeydown,
    HtmlEvent.onselectstart, HtmlEvent.onselectionchange,
    HtmlEvent.onfocus, HtmlEvent.onselect
};
new HtmlPageEventManager( this, evts, this.HtmlEventHandler );

scarica la mia soluzione qui per provarlo e inviarmi feedback. Sentiti libero di usarlo nei tuoi progetti se lo ritieni utile. Anche se funziona bene, ci sono occasioni in cui non riesce a collegare gli eventi. Ho avuto difficoltà a individuare quelle circostanze. Così potrei usare un po 'di aiuto per migliorare su HtmlPageEventManager.

La mia soluzione fa riferimento agli SpicIE ma non sono inclusi nel download precedente , pertanto dovrai ottenerlo dal il sito Web SpicIE . A proposito, questo è probabilmente un buon momento per chiedere: quanto è popolare SpicIE? Qualunque strumento migliore da usare?

È stato utile?

Soluzione

Sì! Ho superato " Aggiorna " emissione iscrivendomi all'evento DownloadComplete di BHO, dove chiamo di nuovo il mio " RegisterEventHandlers " metodo helper che collega i gestori di eventi HTML. Il codice jeffamaphone collegato era utile. Ho incorporato la sua idea di un "normalPageLoad" variabile membro per chiamare in modo condizionale RegisterEventHandlers. Ho anche guardato the accompinging post sul forum . Tuttavia, non riesco a capire l'enfasi sull'evento Loaded della finestra principale. Ho fatto funzionare il mio codice senza nemmeno fare quella parte. Ad ogni modo, penso che HtmlPageEventManager sia perfettamente funzionante ora: bussa al legno. Per favore, mi dia un grido se trovi un caso in cui non sta ancora facendo il suo lavoro.

Altri suggerimenti

Scoprirai che non esiste una soluzione al 100% per farlo con IE durante il caricamento della pagina. Non è colpa tua: il modello di eventi di IE è una gigantesca massa di codice asincrono che rende molto difficile ottenere il giusto. Se hai una soluzione al 95%, dico di essere felice e andare avanti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top