js声明的遍历获取不到变量的值

js声明的遍历获取不到变量的值
iframe加载了一个页面,在加载iframe的页面获取iframe中let申明全局变量输出undefined,示例代码如下
点击按钮输出
undefined
admin


type="button" onclick="alert(i.contentWindow.role+'\n'+i.contentWindow.role1)" value="输出iframe中变量" />

2.html

<script>
    let role = "admin";
    var role1 = "admin";
script>


你把事件写到input中这时候iframe还没加载完成,所以无法获取到值 你应该修改成这样,这样你点击的时候已经加载好了


<iframe src="2.html" id="i"></iframe>
<input type="button" onclick="get()" value="输出iframe中变量" />
 <script>
        function get(){
            alert(i.contentWindow.role1)
        }
    </script>

i没定义
直接输出role,不要写i.contentWindow.role
i是iframe的id,它不是变量名
要么你用find函数去获取这个控件的实例也行