我如何找到我点击的页面的相对xpath(Javascript)

问题描述 投票:0回答:1

我有一个页面,我想使用JavaScript来获取我在页面上单击的任何元素的相对xpath。但是此代码似乎无效。如何使用此代码给我相对的xpath?

function getElementXPath(elt, theClass) {
  var path = "";
  for (; elt && elt.nodeType == 1; elt = elt.parentNode) {
    idx = getElementIdx(elt);
    xname = elt.tagName;
    if (idx > 1) xname += "[" + idx + "]";
    path = "/" + xname + path;
  }

  return path;
}

function getElementIdx(elt) {
  var count = 1;
  for (var sib = elt.previousSibling; sib; sib = sib.previousSibling) {
    if (sib.nodeType == 1 && sib.tagName == elt.tagName) count++
  }

  return count;
}
document.addEventListener("click", (e) => {
  document.querySelector("#xpath").value = getElementXPath(e.target);

  alert(e.target.this.id + getElementXPath(e.target));
})
javascript php jquery xpath relative
1个回答
0
投票

您可以对单击文档时发出的事件对象使用clientX / clientY。这是您可以使用的句柄小功能:

const getCursorPosition = event => {
  return { 
    x: event.clientX,
    y: event.clientY
  }
}

window.addEventListener('click', e => {
  const position = getCursorPosition(e)
  console.log('click position: ', position)
})
© www.soinside.com 2019 - 2024. All rights reserved.