2016-01-15 7 views
6

Es ist einfach möglich, alle wirklich sichtbaren und anklickbaren Elemente auf der Seite mit der document.elementFromPoint Funktion zu finden. Für Elemente außerhalb des Darstellungsbereichs wird jedoch null zurückgegeben.Wie kann ich überprüfen, ob der Benutzer ein Element sehen und darauf klicken kann?

Also, wie finden Sie alle anklickbaren und sichtbaren Elemente auf der ganzen Seite? Die sichtbaren Elemente sind nicht nur auf die Stile beschränkt. Denken Sie nur an einen Container <div>, der jetzt hinter allen Kinderelementen versteckt ist. Also, das Elternteil <div> ist nicht mehr sichtbar.

enter image description here

Also, Sie haben keine Ahnung, wie es möglich ist, alle wirklich sichtbaren Elemente auf der Seite zu finden? Im obigen Beispiel ist offensichtlich "Parent <div>" praktisch nicht sichtbar. Es gibt einige andere unvorhersehbare Situationen, in denen diese Elemente möglicherweise nicht sichtbar sind und die Stile (display, visibility usw.) dies möglicherweise nicht anzeigen.

Meine letzte Absicht: Ich möchte überprüfen, ob ein Element wirklich sichtbar und klickbar für den Endbenutzer oder nicht ist. Als ein Anwendungsbeispiel möchte ich alle möglichen Zonen finden, auf die ein Benutzer klicken kann.

+1

Dies scheint wie ein [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the- xy-Problem). – Xufox

+0

@Tushar beantwortet die Frage nicht. Das Eltern-Div ist in meinem Beispiel für den Endbenutzer nicht sichtbar, gibt aber in View-Port-Messungen den Wert true zurück. – Kousha

+0

@Xufox "Wie finden Sie sichtbare Elemente für den Endbenutzer?". Ich hoffe, die Frage ist klar. – Kousha

Antwort

-1

Ich glaube, Sie haben die Grundlagen hinter den Ereignissen in domApi falsch verstanden. Es wird Blasen und Captures in jedem Fall auf dem Client passiert sein. Sie müssen Code wie diesen document.addEventListener('click',function(){},false),

gesehen haben, das bedeutet, Blase statt Capture zu verwenden, um Ereignis zu behandeln. so tatsächlich klickbare dom Element im Zusammenhang mit, ob oder nicht DOMJs Blase verwendet oder erfassen

+0

Ich bin mir nicht sicher, ob Sie die Frage überprüft haben. – Kousha

Verwandte Themen