你好我试图通过节点的ID来检索文档的XPATH,我看到这是一个简单的事情,看一下这个代码很简单:
// IFRAME [@ ID =键];
但是它不起作用,我已经尝试了我能想到的每种语法组合而不是运气,打印输出是“未定义的”。这是我的代码
function getNode(htmlURL, filename, xpath, callback){
var key = filename+xpath;
var frame = document.getElementById(key);
frame.addEventListener("load", function(evt){
var value= frame.contentDocument.evaluate(xpath, frame.contentDocument, null,9,null);
if(value!=null){
callback(value);
}
}, false);
frame.contentWindow.location.href = htmlURL;
}
function init(htmlURL, filename, xpath){
getNode(htmlURL, filename, xpath, function(node) { console.debug(node.outerHTML); });
}
我试图在iframe中获取xpath,所以我想我必须先将它指向iframe的ifpath
答案 0 :(得分:1)
如果要在iframe中找到元素,则需要在iframe中的文档上使用evaluate方法,例如
frame.contentDocument.evaluate(xpath, frame.contentDocument, null,9,null)
但是如果你设置src加载一个HTML文档,不要期望能够在代码设置src中访问文档中的节点,而是设置一个onload事件处理程序,等待文档加载完毕。然后,您可以在事件处理程序中访问已加载文档中的节点。
答案 1 :(得分:0)
您将获得undefined
,因为您的xpath语法转换为JavaScript中的代码注释。
你可能想要的是:
var finalxpath = "//iframe[@id=key]";
请注意引号字符,它使您的xpath成为字符串文字值。