0

我检查了我的网站 (WordPress) 应用程序的页面源,发现以下内容

<div class="control-group">
<div id="recaptcha_div" class="controls">
    <noscript>&lt;iframe
        src="https://www.google.com/recaptcha/api/noscript?k=6Lcc4OYSAAAAABTEzBumk7dNbnpKbpC3JhVdi2yU"
        height="300" width="500"&gt;&lt;/iframe&gt;&lt;br/&gt; &lt;textarea
        name="recaptcha_challenge_field" rows="3"
        cols="40"&gt;&lt;/textarea&gt; &lt;input type="hidden"
        name="recaptcha_response_field" value="manual_challenge"/&gt;</noscript>
    <div for="cscf_recaptcha" class="help-inline"></div>
</div>

我相信我的浏览器上启用了 JavaScript。这是否意味着 JavaScript 已完全禁用或此时仅不可用?

4

3 回答 3

2

<noscript>是页面的HTML源代码的一部分,它来自服务器。这是对浏览器的指示:仅在脚本不可用或禁用(使用首选项设置或类似的附加组件NoScript)时才呈现随附的内容。

于 2013-09-02T08:17:16.283 回答
2

noscript标记是不支持 javascript 的浏览器(或当 javascript 被禁用或使用不受支持的脚本语言时)的后备机制。

在上述情况下,禁用 javascript 的浏览器将显示 recaptcha 的 iframe 版本,而其他浏览器将使用基于 JavaScript/AJAX 的版本。

注意:关于您的示例,不应对 noscript 标记内的 HTML 进行编码。

于 2013-09-02T07:59:44.840 回答
1

通常,noscript块总是在这里。但是一个常见的“技巧”是用javascript在它前面放一个div。

因此,如果禁用了 javascript,您会看到该noscript块。如果启用了 javascript,则 div 位于其前面,因此您看不到它(但该块仍在 html 中)。

noscript启用 javascript 时,某些浏览器还会自动隐藏块。但是他们仍然没有从 DOM 中删除它。

于 2013-09-02T07:55:11.837 回答