Estoy compilando una aplicación donde necesito repetidamente obtener listas de elementos html sentados en una ubicación específica (x, y relativa a la ventana gráfica, por ejemplo) . Estoy considerando los siguientes enfoques, pero ninguno es satisfactorio:Dada una coordenada x, y, necesito encontrar todos los elementos html
(1) Vaya a través del html, construya una estructura de datos que haga un seguimiento de la posición x, y de cada elemento (x, y -> conjunto de elementos), y luego acceda a esta estructura de datos cuando necesite hacer una búsqueda. Desafortunadamente, este enfoque es un poco engorroso y estoy buscando una mejor manera de resolver este problema. Además, me temo que puede ser demasiado lento.
(2) Un enfoque probablemente mejor que estoy considerando es agregar temporalmente un controlador de eventos de nivel superior que capture todos los eventos de desplazamiento, para simular un movimiento del mouse en la posición particular y luego quitar el controlador, pero parece que esto solo devolverá el elemento superior (por ejemplo, si hay un montón de divs de posición absoluta sobre una ubicación particular, creo que solo devolverá el que tenga el índice z más alto, mientras que lo necesito todo, aunque No estoy seguro).
(3) Para IE, hay componentFromPoint (x, y), pero no puedo encontrar un equivalente en otro navegador - eso y solo devuelve el elemento superior.
Tenga en cuenta que la aplicación está construida como un marcador y no tengo control sobre el html subyacente; esto, lamentablemente, restringe todas las soluciones fáciles del lado del servidor.
Estoy dispuesto a utilizar las bibliotecas (actualmente en jquery).
FYI, hasta ahora el mejor que he encontrado aquí es Getting DIV id based on x & y position; preguntándose si hay algo más actualizado.
Probablemente estoy siendo un idiota: ¿cuál es tu objetivo * real *? Puede haber una solución más elegante a la que está investigando actualmente. –
Nuestra aplicación permite a los usuarios poner divs con nuestro contenido en cualquier página web. Debido a que el html de la página subyacente puede representarse de manera diferente en función de factores fuera de nuestro control (por ejemplo, el tipo de navegador o el tamaño de la ventana puede cambiar la posición/alineación de los elementos individuales), no podemos ubicar los divs con respecto a la parte superior/a la izquierda de la página como un todo (parece que se sientan en un lugar diferente según el entorno de visualización, lo cual no es bueno). En cambio, debemos adjuntar los divs a un elemento que sabemos que no se mueve (o a un elemento que se encuentra directamente debajo del div). De ahí la pregunta. –