我检查了我网站(WordPress)应用程序的页面源代码,发现了以下内容
<div class="control-group">
<div id="recaptcha_div" class="controls">
<noscript><iframe
src="https://www.google.com/recaptcha/api/noscript?k=6Lcc4OYSAAAAABTEzBumk7dNbnpKbpC3JhVdi2yU"
height="300" width="500"></iframe><br/> <textarea
name="recaptcha_challenge_field" rows="3"
cols="40"></textarea> <input type="hidden"
name="recaptcha_response_field" value="manual_challenge"/></noscript>
<div for="cscf_recaptcha" class="help-inline"></div>
</div>
我相信我的浏览器启用了JavaScript。这是否意味着JavaScript已完全禁用或仅在此时不可用?
答案 0 :(得分:2)
noscript
标记是不支持javascript的浏览器的后备机制(或者当禁用javascript或使用不支持的脚本语言时)。
在上述情况下,禁用javascript的浏览器将显示recramecha的iframe版本,而其他浏览器将使用基于JavaScript / AJAX的版本。
注意:关于您的示例,不应对noscript标记内的HTML进行编码。
答案 1 :(得分:2)
<noscript>
是页面HTML源代码的一部分,它来自服务器。这是对浏览器的说明:仅当脚本不可用或禁用时(使用首选项设置或NoScript
等附加组件)呈现所附内容。
答案 2 :(得分:1)
通常,noscript
块总是在这里。但一个常见的“技巧”是用javascript将div放在它前面。
因此,如果禁用了javascript,您会看到noscript
块。如果启用了javascript,则div位于其前面,因此您无法看到它(但该块仍在html中)。
启用javascript后,某些浏览器也会自动隐藏noscript
块。但他们仍然没有将其从DOM中删除。