- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在寻找如何设置 Google 的新 recaptcha (v2) 样式方面没有取得多大成功。最终目标是使其具有响应性,但我很难为宽度等简单的东西应用样式。
他们的 API documentation除了 theme 参数外,似乎没有给出任何关于如何控制样式的细节,简单的 CSS 和 JavaScript 解决方案对我不起作用。
基本上,我需要能够将 CSS 应用于 Google 的新版 reCaptcha。使用 JavaScript 是可以接受的。
最佳答案
很抱歉成为坏消息的回答者,但经过研究和调试,很明显无法自定义新 reCAPTCHA 控件的样式。这些控件被包装在 iframe
中,这可以防止使用 CSS 来设置它们的样式,并且 Same-Origin Policy阻止 JavaScript 访问内容,甚至排除了一个 hacky 解决方案。
不同于reCAPTCHA API Version 1.0 , API Version 2.0 中没有自定义选项.如果我们考虑一下这个新 API 的工作原理,就不足为奇了。
While the new reCAPTCHA API may sound simple, there is a high degree of sophistication behind that modest checkbox. CAPTCHAs have long relied on the inability of robots to solve distorted text. However, our research recently showed that today’s Artificial Intelligence technology can solve even the most difficult variant of distorted text at 99.8% accuracy. Thus distorted text, on its own, is no longer a dependable test.
To counter this, last year we developed an Advanced Risk Analysis backend for reCAPTCHA that actively considers a user’s entire engagement with the CAPTCHA—before, during, and after—to determine whether that user is a human. This enables us to rely less on typing distorted text and, in turn, offer a better experience for users. We talked about this in our Valentine’s Day post earlier this year.
如果您能够直接操纵控件元素的样式,则可以轻松干扰使新的 reCAPTCHA 成为可能的用户分析逻辑。
现在新 API does offer a theme
option ,您可以通过它选择预设主题,例如 light
和 dark
。但是目前没有办法创建自定义主题。如果我们检查 iframe
,我们会发现 theme
名称在 src
属性的查询字符串中传递。此 URL 类似于以下内容。
https://www.google.com/recaptcha/api2/anchor?...&theme=dark&...
此参数确定在 iframe
中的包装器元素上使用什么 CSS 类名,并确定要使用的预设主题。
挖掘缩小后的源代码,我发现实际上有 4 个有效的主题值,比文档中列出的 2 个多,但是 default
和 standard
是与 light
相同。
我们可以在这里看到从这个对象中选择类名的代码。
自定义主题没有代码,如果指定了任何其他 theme
值,它将使用 standard
主题。
目前,还没有办法对新的 reCAPTCHA 元素进行完全样式化,只能对 iframe
周围的包装元素进行样式化。这几乎肯定是有意为之,以防止用户破坏使新的无验证码复选框成为可能的用户分析逻辑。 Google 可能会实现有限的自定义主题 API,也许允许您为现有元素选择自定义颜色,但我不希望 Google 实现完整的 CSS 样式。
关于javascript - ReCaptcha API v2 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713505/
我有一个 k*n矩阵 X 和 k*k矩阵A。对于X的每一列,我想计算标量 X[:, i].T.dot(A).dot(X[:, i]) (或者,数学上, Xi' * A * Xi )。 目前,我有一个
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我是 VueJS 的新手。我已经使用 vuetify/webpack-ssr 模板创建了一个项目,现在我想创建一个登录页面,但是没有显示表单,控制台给了我以下信息: [Vue warn]: Unkno
我尝试将 value 插入到 C++ vector v 之前的第 i 元素(或元素 (i-1) 之后) )。代码很简单 v.insert(v.begin() + i, value); 我确信当 i 介
我需要显示使用合并排序算法排序的 vector 。然而,当我使用 v.begin() 时,我的 friend 使用 v.data() 来传递 vector 。他的代码运行良好,而我的却不行。请解释。
这是我的命令(url1、url2、url3、url4 是占位符): ffmpeg -i url1 -i url2 -i url3 -i url4 -filter_complex “[1:v:0] [1
我以前用过Vue,我知道怎么用v-for渲染元素序列,v-if或v-show有条件地显示元素,并且 v-model例如,控制段落的内容。 但现在我需要对 DOM 进行更精细的控制: 我有一个range
我正在学习所有权和借用。 borrow1 和borrow2 的区别在于在borrow2 打印时使用了&: fn borrow1(v: &Vec) { println!("{}", &v[10]
我找不到一种方法来选择不同的选项来渲染 v-for 中的文本。是否有可能或者我是否需要以不同的方式构建逻辑来执行类似于下面的代码的操作? // i
Iterable 的三个直接子类型是 Map , Seq , 和 Set .除了性能问题之外,似乎还有一个 Seq是从整数到值的映射,以及 Set是从值到 bool 值的映射(如果值在集合中,则为 t
我想应用一个计算方法,如果键存在则增加值,否则将 1。有 Map map = new HashMap<>(); 我不明白为什么 for (int i = 0; i v != null ? v++ :
标准(IEEE 754/C)是否保证以下代码断言永远不会失败? int main() { for ( /* all possible float / double values */ )
代码由Vue语言编写,使用Element-ui框架, 如果一个对象包含某些内容,则会显示该内容,如果不包含则禁用菜单按钮。 输出应该是这样的: a、b(禁用)、c、d、e 但我的是这样的: a、a(禁
如果我这样做: {{ morevalue }} {{ value }} v-else 中的跨度也会在第二个 V-FOR 上循环,即使它上面没有任何 v-for,为什么? 这是
如果我这样做: {{ morevalue }} {{ value }} v-else 中的跨度也会在第二个 V-FOR 上循环,即使它上面没有任何 v-for,为什么? 这是
我将 Vue.js 与 Vuetify 一起使用,我正在尝试使用 v-data-table 从后端加载菜单列表并使用 对其设置一些权限v-switches 但我在尝试 v-model 数组时遇到问题:
我在 Java 的流式操作中努力维护我想要的数据结构,这很可能是由于缺乏正确的理解和实践。 public class Main { public static void main(String
我正在尝试为匹配中的每个匹配呈现一些 HTML,但是,我不太确定 实际上是正确的。 更具体地说,我不确定我是否可以使用 v-bind:match='match'在与循环相同的元素上 v-for='ma
所以我想知道为什么这个 v-if 和 v-else 语句不起作用,为什么我要以不同的方式解决它。 代码如下 Required: Select a Workflow {{ isChain ?
我有一个 VueJS 组件 ,我在同一个模板中使用了两次来显示两组不同的数据。每个都显示在自己的 使用 v-if 切换的容器在导航选项卡上。 似乎这些组件被实例化为同一个实例。我调用 console
我是一名优秀的程序员,十分优秀!