2016-07-22 17 views
0

So ist die Situation die folgende. Ich habe ein div-Element, das für alle Arten von anderen Elementen als Behälter dient (insbesondere <a hre0="..."><img ...></img></a> und <iFrame> Tags):Javascript: Erhalten Sie Klickziel von beliebigem Element in div-Tag

<div id="myDiv"> 

Also im Grunde, was ich tun möchte, ist das Click-Ziel zu erhalten (falls zutreffend) für alle Arten von Elementen innerhalb dieses div-Tags, unter der Annahme, dass immer nur ein Klick mit Ziel angegeben ist.

Apropos UI: Ich möchte den Ziel-Link sehen, den der Benutzer sieht, wenn er mit dem Cursor über das Element schwebt.

Gibt es einen generischen Ansatz, um dies zu erreichen?

+0

Dies ist z. B. nicht möglich, um ein Klickereignisziel für einen Cross-Origin-iFrame zu erfassen (sofern dies nicht speziell von dieser iframed-Seite gehandhabt wird). Andernfalls prüfen Sie einfach nach '$ (event.target) .closes ('[href]'). Prop ('href')' –

+0

nicht sicher, ob eine Frage verstanden, aber vielleicht brauchen Sie so etwas: https: // jsfiddle .net/kshqtv8j/2/ –

+0

oder vanilla.js: https://jsfiddle.net/2years50/1/ –

Antwort

0

Es klingt wie das, was Sie tun möchten, ist alle untergeordneten Elemente Ihres Wrappers div zu finden, dann durchlaufen Sie sie, um die "href" -Eigenschaft zu erhalten. Etwas wie:

var children = document.getElementById('myDiv').children; 

for (var i = 0; i < children.length; i++) { 
    var childElement = children[i]; 
    var destination = childElement.href; 

// do whatever you want with destination here. You can also get the associated IDs etc. 

} 

Nicht getestet, sollte aber funktionieren.

+0

danke, es funktioniert für Img-Tags, aber für iFrame-Tags, aus einer anderen Domäne geliefert, funktioniert es nicht. Irgendwelche anderen Vorschläge? – mrb