对于表单,我使用谷歌验证码来防止垃圾邮件。 我查看了 dom,验证码的代码如下所示:
<div class="rc-anchor-center-container">
<label class="rc-anchor-center-item rc-anchor-checkbox-label" aria-hidden="true" role="presentation" id="recaptcha-anchor-label">
<span aria-live="polite" aria-labelledby="recaptcha-accessible-status"></span>
I'm not a robot
</label>
</div>
我尝试用 javascript 抓取文本
I'm not a robot
:
$( document ).ready(function() {
var captchaText = $('#recaptcha-anchor-label').text();
alert(captchaText);
});
不幸的是,警报是空的。我怎样才能抓取文字?
当 recaptcha 脚本加载并将其内容注入 DOM 时,您需要调用您的方法。要做到这一点,最简单的方法是向在验证码中加载的脚本添加回调方法。
export function createScript(url: string, callback?: Function): void {
const script = document.createElement('script');
script.src = url;
script.async = true;
if (callback) {
script.addEventListener('load', () => {
callback();
});
}
document.body.appendChild(script);
}
const recaptchaUrl = 'https://www.google.com/recaptcha/api.js';
createScript(recaptchaUrl, () => {
// Insert your desired code
});