如何在iframe上下文内获取自身的id与name属性值?
在iframe内部获取自身id和name的简洁方法
当然有更直接的实现方式,完全不需要借助postMessage跨上下文传递信息:
核心方案:利用
window.frameElement属性
每个iframe内部的window对象自带frameElement属性,它直接指向当前iframe对应的DOM节点(也就是父页面中的<iframe>元素)。通过这个节点可以直接读取id和name属性。示例代码(在iframe内部执行):
const currentIframe = window.frameElement; if (currentIframe) { const iframeId = currentIframe.id; // 对应示例中的"abc" const iframeName = currentIframe.name; // 对应示例中的"xyz" console.log('当前iframe的id:', iframeId); console.log('当前iframe的name:', iframeName); }兼容性提示
window.frameElement在所有现代浏览器(Chrome、Firefox、Edge、Safari)以及IE8及以上版本都能正常工作,兼容性拉满。补充:如果当前页面不是以iframe形式加载的(比如直接打开),
window.frameElement会返回null,所以代码里加个判断能避免报错。
内容的提问来源于stack exchange,提问作者Jeanluca Scaljeri
相关产品推荐
相关产品推荐

