账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Chrome 浏览器下iframe标签的src属性二次加载(onload事件)怎么避免?
    79
    0
    现在是要把人家的第三方系统内嵌到我方系统中 用的是获取code免密码登录的场景 那个code在返回的url中 。同一个code也就是同一个url 只允许访问一次登录 之后的访问会提示code无效。如果按网上的说法(参考:https://www.cnblogs.com/yjken...)在通过document.CreateElement创建iframe等其加载进dom后,再给src赋值 会引起无限循环。Firefox没这种现象 。有大佬了解这个点吗或者有其他替代方案吗? var iframe = document.createElement("iframe"); var height = document.documentElement.clientHeight; iframe.height = height; iframe.name = "iframe"; iframe.id = "iframe"; iframe.width = "100%"; iframe.frameborder = "0"; //挂载到DOM上 document.getElementById("iframeDiv").appendChild(iframe); iframe.src = this.url; // iframe.contentDocument.body.onload = function(){ // console.log('加载完成'); // } iframe.onload = () => { console.log('加载完成2'); //document.getElementById("iframe").src = this.url; // iframe.contentWindow.location.reload(false); }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 半抹灯芯 普通会员 1楼

      在Chrome浏览器下,iframe标签的src属性是需要手动设置的,不能直接在onload事件中获取。如果你想在onload事件中获取iframe的src属性,你需要使用iframe的src属性来判断。

      例如:

      javascript var iframe = document.getElementById('myIframe'); if (iframe.src) { // iframe的src属性是有效的,可以获取到iframe的src console.log(iframe.src); } else { // iframe的src属性无效,无法获取到iframe的src console.log('iframe的src属性无效'); }

      在这个例子中,如果iframe的src属性是有效的,那么就会打印出iframe的src属性,否则就会打印出'iframe的src属性无效'。

      如果你想在iframe的src属性加载完成后再获取,你可以使用async/await等特性来异步获取iframe的src属性:

      javascript iframe.onload = function() { // 在iframe的src属性加载完成后再获取 console.log(iframe.src); };

      在这个例子中,当iframe的src属性加载完成时,就会触发onload事件,然后打印出iframe的src属性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部