您可以看到,我不是在尝试从实际iframe的contentWindow内部访问任何内容,而是在iframe广告代码本身中进行访问。
示例iframe元素:
<iframe id="placeholder"
data-ids="1J2cSrn6ox4,BUQzSn85NMs,Fzav6plKfr8,MsNJTTP3LMM,hTZLXnY7Gc0"
style="100%; 330px;" frameborder="0" allowfullscreen="1"
allow="accelerometer; autoplay; encrypted-media; gyroscope;
picture-in-picture" width="100%" height="100%"></iframe>
我正在尝试检索分配给属性data-id的字符串如何使用XPath检索此信息?
//iframe[1].data-ids
//*[@id="placeholder"]/@data-ids
如果我使用JavaScript,则getAttribute函数可以检索:
var frame = document.querySelector('iframe');
var val = frame.getAttribute('data-ids');
alert(val);
但是如何在Xpath中做到这一点?
[我正在Chrome中使用检查器,在元素下,按CTRL-F搜索XPATH;
,这将不允许我访问要引用的特定字符串:
//*[@id="placeholder"]//@data-ids
[当我使用它时不起作用,它仍然突出显示整个iframe。
您是否知道如何仅访问分配给iframe标记的“数据ID”属性的引号之间的字符串?
是否有与Xpath中的JS命令getAttribute()
类似的命令?我只想返回“ 1J2cSrn6ox4,BUQzSn85NMs,Fzav6plKfr8,MsNJTTP3LMM,hTZLXnY7Gc0”。
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
test = getElementByXpath("//*[@id="placeholder"]//@data-ids")
console.log(test);
并且现在将以下内容输出到控制台:
data-ids="1J2cSrn6ox4,BUQzSn85NMs,Fzav6plKfr8,MsNJTTP3LMM,hTZLXnY7Gc0"
这很好,但是我如何只获得文本?不是名称/值对,不是attrName =“ value”,而是引号之间的含义是什么?怎么样???请帮助我在此只想继续前进我不问如何使用javascript;我问如何定位属性的字符串值而不将其转换为字符串...以获取没有名称或引号的值。为什么整个互联网上都没有此答案?我需要针对节点本身的价值;仅使用XPATH
XPATH;
,这将不允许我访问要引用的特定字符串://*[@id="placeholder"]//@data-ids
[当我使用它时不起作用,它仍然突出显示整个iframe。您是否知道如何仅访问分配给iframe标记的“数据ID”属性的引号之间的字符串?
是否有与Xpath中的JS命令
getAttribute()
类似的命令?我只想返回“ 1J2cSrn6ox4,BUQzSn85NMs,Fzav6plKfr8,MsNJTTP3LMM,hTZLXnY7Gc0”。