刷新后访问 iframe 元素
Access iframe elements after refresh
我正在尝试使用 iframe 元素从学校 peoplesoft 门户页面中提取数据。
在主页上,页面源具有 iframe 元素。当我单击一个按钮离开该页面时(即搜索 类),页面源保持不变但页面上的元素不同(使用检查元素观察)。
我可以访问主页上的元素,但不能访问任何其他元素,因为我认为我没有考虑到 iframe 中其他元素的 data/injection 的重新加载。如何访问元素 post 重新加载?
这是我用来访问元素的片段:
var iframe = document.getElementById("id of iframe");
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var element = innerDoc.getElementById("name of id desired in iframe");
那是因为在导航时,iframe 的 document
发生了变化,您的 innerDoc
变量存储了旧文档的值,您可以创建一个函数来检索文档而不是将其存储在静态变量中:
var iframe = document.getElementById("id of iframe");
function getInnerDoc() {
return iframe.contentDocument || iframe.contentWindow.document;
};
var element = getInnerDoc().getElementById("name of id desired in iframe");
根据您的评论,似乎整个 iframe 都存储在变量中并且从不刷新,您应该创建一个函数以便在每次需要检索元素时获取 iframe 文档:
function getIframeDocument(iframeId) {
var iframe = document.getElementById(iframeId);
return iframe.contentDocument || iframe.contentWindow.document;
};
var element = getIframeDocument().getElementById("name of id desired in iframe");
我正在尝试使用 iframe 元素从学校 peoplesoft 门户页面中提取数据。 在主页上,页面源具有 iframe 元素。当我单击一个按钮离开该页面时(即搜索 类),页面源保持不变但页面上的元素不同(使用检查元素观察)。 我可以访问主页上的元素,但不能访问任何其他元素,因为我认为我没有考虑到 iframe 中其他元素的 data/injection 的重新加载。如何访问元素 post 重新加载? 这是我用来访问元素的片段:
var iframe = document.getElementById("id of iframe");
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var element = innerDoc.getElementById("name of id desired in iframe");
那是因为在导航时,iframe 的 document
发生了变化,您的 innerDoc
变量存储了旧文档的值,您可以创建一个函数来检索文档而不是将其存储在静态变量中:
var iframe = document.getElementById("id of iframe");
function getInnerDoc() {
return iframe.contentDocument || iframe.contentWindow.document;
};
var element = getInnerDoc().getElementById("name of id desired in iframe");
根据您的评论,似乎整个 iframe 都存储在变量中并且从不刷新,您应该创建一个函数以便在每次需要检索元素时获取 iframe 文档:
function getIframeDocument(iframeId) {
var iframe = document.getElementById(iframeId);
return iframe.contentDocument || iframe.contentWindow.document;
};
var element = getIframeDocument().getElementById("name of id desired in iframe");