2010-12-09 3 views
3

Je ne trouve aucune documentation sur l'événement « beforeload » autre que le Blocking Unwanted Content section of this.extension de safari documentation événement beforeload

Ce que je suis à la recherche spécifiquement pour est la structure de message d'événement. De la doc ci-dessus, je sais qu'il y a un membre "event.url", mais pas grand chose d'autre. A partir d'un snip de code source, je sais qu'il y a aussi un membre "event.target.nodeName". Mais je n'ai rien de plus que ça. Je me suis perdu à la fois dans les documents WebKit et les documents d'événement w3. Où puis-je trouver une documentation de référence simple pour l'événement "beforeload"?

Répondre

3

Les messages d'événement (SafariExtensionMessageEvent instances) ont uniquement un name et un message (class documentation). Il est en fait discuté sur le same page. Il est intéressant de noter que la documentation de la classe d'événements (SafariEvent) ne mentionne pas de propriété ou de méthode url, de sorte qu'un objet d'une classe différente est en cours de transmission ou que quelque chose d'autre se passe.

Comme vous, j'ai trouvé que la documentation d'Apple manquait, au mieux. Pour écrire les petites extensions que j'ai voulu écrire, j'ai dû rassembler des informations provenant de différents endroits dans les docs. Si vous vous demandez si vous êtes le seul à devoir travailler trop dur pour accomplir des tâches relativement simples ... ce n'est pas le cas. :-)

+0

Merci pour la sympathie. La propriété "url" est utilisée dans la liste 11-3 de l'exemple de document que j'ai mentionné. Je devine que c'est une propriété héritée, mais je ne peux pas trouver un diagramme de hiérarchie de classe dans la documentation de Safari. – mjhm

4

L'événement DOM beforeload est un concept WebKit, il n'est pas spécifique aux extensions Safari. Il a une propriété URL.

Pour un peu plus d'informations sur l'événement beforeload - vous pouvez voir:

http://opensource.apple.com/source/WebCore/WebCore-1298/dom/BeforeLoadEvent.idl

Si vous utilisez ce dans un script de contenu d'extension, une façon d'obtenir un peu plus d'informations sur d'avoir un code comme:

document.addEventListener("beforeload", beforeLoadHandler, false); 

function beforeLoadHandler(event) 
{ 
    console.log(event); 
} 

Et puis utilisez l'inspecteur Web pour afficher des informations sur l'événement (vous pouvez voir son URL, vous pouvez regarder la cible d'événement, etc.).

1

L'exemple devrait définir l'argument de la capture à la 'vraie' , pas "faux" lorsqu'il est utilisé à partir du contenu de la page. Je ne suis pas sûr de savoir comment cela affectera son utilisation dans les extensions, mais les gens l'utilisent directement à partir du contenu de la page et l'utilisent pour réécrire les pages. Et vous devez capturer dans ce cas.

Questions connexes