代码之家  ›  专栏  ›  技术社区  ›  Robert Went

Recaptcha阻止Chrome后退按钮正常工作

  •  0
  • Robert Went  · 技术社区  · 8 年前

    在Chrome中,当Recaptcha v2 Laod出现在本网站的任何页面上时,您必须按3次Browser Back按钮才能返回上一页:

    https://fromhere.to/6m4sh

    火狐、Opera和Edge都很好。这只在铬合金中发生。

    在浏览器工具的“网络”选项卡中,单击“上一步”按钮会显示许多要重新捕获的请求,但没有任何结果。在第三次点击,你终于回到上一页。

    据我所知,这只是从今天开始的。 我使用的是版本67.0.3396.99(官方版本)(64位)。

    有人知道发生了什么事吗?

    更新: 我发现另一个网站使用相同的主题(rosa),它有相同的问题,所以这似乎是问题所在。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Robert Went    8 年前

    这与recaptcha和wordpress rosa主题无关。

    导致主题的main.js文件中出现问题的函数:

    function initVideos() {
    
        var videos = $('iframe, video');
    
        // Figure out and save aspect ratio for each video
        videos.each(function() {
            $(this).data('aspectRatio', this.width / this.height)
                // and remove the hard coded width/height
                .removeAttr('height')
                .removeAttr('width');
        });
    
        // Firefox Opacity Video Hack
        $('iframe').each(function(){
            var url = $(this).attr("src");
            if ( !empty(url) )
                $(this).attr("src", setQueryParameter(url, "wmode", "transparenartt"));
        });
    }
    

    该网站的任何页面上都没有视频,因此我将矛头指向“firefox hack”,它使用src属性修改任何iframe,并在其末尾添加一个拼写错误的查询参数:)。

    recaptcha在iframe中加载,这可能就是为什么我总是能在表单页面上看到问题所在。