我有一个包含iframe的组件,我想在react中访问它的内容,我使用ref来处理iframe,我如何从iframe中获取所有锚点标签
下面是我的代码:
const GridGenerator = () => {
const [loading, setLoading] = useState(true);
const gridIframe = useRef(null);
function handleIframe() {
setLoading(false);
const iframeItem = gridIframe.current;
const anchors = iframeItem.contentWindow.getElementsByTagName("a");
}
return (
<div>
{loading ? <div className={styles.loader} /> : null}
<iframe
title="Grid Generator"
ref={gridIframe}
src="https://collectearth.users.earthengine.app/view/collect-earth-grid-generator"
width="100%"
height="1000px"
frameBorder={0}
onLoad={handleIframe}
/>
<Link to={routes.HOME}>Go Back</Link>
</div>
);
};
字符串
所以,它工作得很好,直到:
const iframeItem = gridIframe.current;
型
它返回iframe标签,但这一行不好用
const anchors = iframeItem.contentWindow.getElementsByTagName("a");
型
有什么解决办法吗?谢谢
2条答案
按热度按时间xurqigkl1#
对我来说,添加到
Window
工作,而不是Document
:没有
bind()
:字符串
bind()
:型
nfs0ujit2#
你需要访问contentWindow的文档才能得到元素,Window接口没有任何方法叫
getElementsByTagName
。所以与其
const anchors = iframeItem.contentWindow.getElementsByTagName("a");
个你应该做
const anchors = iframeItem.contentWindow.document.getElementsByTagName("a");
个