我有一个页面,我想使用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));
})
最佳答案
您可以在文档中单击时发出的事件对象上使用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)
})
关于javascript - 如何找到我单击的页面的相对xpath(JavaScript),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59035374/