首页 > 解决方案 > NuCaptcha 不渲染

问题描述

window.addEventListener('load', () => {
    window
        .fetch('https://services.share-pi.aarp.org/applications/CoreServices/WSOWebService/captcha/getWidget')
        .then((resp) => resp.text())
        .then(data => {
           
      // Initialize the DOM parser
            var parser = new window.DOMParser()
           
            // Parse the text
            var doc = parser.parseFromString(data, 'text/html')
       
            // Print to console
            console.log(doc.documentElement)
            document.getElementById('nuCaptcha').appendChild(doc.documentElement)
        })
})
<h3>NuCaptcha</h3>
<div id="nuCaptcha" class=""></div>

我正在实施 NuCaptcha - 类似于 Google Captcha。

我正在将我的请求响应打印到控制台中。当我将此响应粘贴到 JSBin 或空白 .html 中时。文件,它可以工作并显示验证码挑战,但添加到页面的验证码似乎没有呈现。

有人对为什么会这样有任何想法吗?

标签: javascripthtmlcaptcha

解决方案


诀窍是在粘贴下载的 html 后执行脚本。

window.addEventListener('load', () => {
	window.fetch('https://services.share-pi.aarp.org/applications/CoreServices/WSOWebService/captcha/getWidget').then((resp) => resp.text()).then(data => {
		var div = document.getElementById('nuCaptcha');
		div.innerHTML = data;
		var script = div.getElementsByTagName('script')
		for (var i = 0; i < script.length; i++) eval(script[i].innerHTML);
	})
})
<h3>NuCaptcha</h3>
<div id="nuCaptcha" class=""></div>


推荐阅读