我正在使用Chrome扩展程序使用香草JavaScript,以根据用户类型隐藏页面的各个部分。用户类型在页面的部分中。我可以访问标记外部的元素,但不能访问标记内部的任何元素。
我尝试将范围ID与'// * [@ id =“ userType”]'结合使用,但这返回null。我也尝试访问标头中的其他元素(其他元素),但我也无法访问这些元素。我只能访问代码外部的元素。
html页面代码:
<body>
<form id="form1">
<header>
<div>
<span onclick="DP$LinkButton$Click(this, null, null, 'file.asp',null); return(false);
<span id="userType">user1</span>
<span id="userName">Bob</span>
</span>
</div>
</header>
<div>
</div>
</form>
</body>
xPath函数:
function getElementByXpath(path) {
// returns the element value matching the Xpath
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
} // end function getElementByXpath
xPath测试:
console.log(getElementByXpath('//*[@id="userType"]'));
console.log(getElementByXpath('//*[contains(@id,"userType")]'));
console.log(document.getElementById('userType'));
console.log(getElementByXpath("/html/body/form/header/div/span/span[@id='userType']"));
所有xPath查询均返回“ null”。我在xPath上使用.text()、. innerHTML,空白或只是整个标头尝试了console.log,它返回了'null'。我的xPath函数在header标记之外的其他元素上可以很好地工作。请帮忙!