0

我有以下脚本和 noscript javascript 代码:

<script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=6LfWqtgSAAAAAP1KwYFYGt0wDeJFtxznmqyRH_Q5">   </script>
    <noscript>
        <iframe src="https://www.google.com/recaptcha/api/noscript?k=6LfWqtgSAAAAAP1KwYFYGt0wDeJFtxznmqyRH_Q5"
            height="300" width="500" frameborder="0"></iframe>
        <br>
        <textarea name="recaptcha_challenge_field" rows="3" cols="40">      </textarea>
        <input type="hidden" name="recaptcha_response_field" value="manual_challenge">
    </noscript>

仅当从服务器设置 javascript 变量时,才应将上述代码添加到页面正文中。

var shouldShow = true;

        $document.ready(function() {

            if (shouldShow) {

                // add
            } else {

                // don't add
            }
        });

怎么可能在运行时添加这些脚本?

谢谢,

4

2 回答 2

1

您可以使用Page.RegisterStartupScript

if (shouldShow) {

        Page.RegisterStartupScript...
}
于 2012-11-07T15:30:56.840 回答
1

你可以这样做:

 var shouldShow = true;
 $document.ready(function() {
        if (shouldShow) {
           var newScript = document.createElement('script');
           newScript.type = 'text/javascript';
           newScript.src = 'https://www.google.com/recaptcha/api/challenge?k=6LfWqtgSAAAAAP1KwYFYGt0wDeJFtxznmqyRH_Q5';
           document.body.appendChild(newScript);
        } else { ... }

你可以随意忽略 noscript。因为它仅在没有启用 JS 时显示,但在这种情况下无论如何都不会添加它。

但是,为什么不简单地将其放入 someasp:panel中,然后根据是否显示它来将其可见性设置为 true/false?如果某些 asp.net 元素具有elem.Visibility = false它不会发送到浏览器,则与其所有内容相同。

于 2012-11-07T15:34:08.907 回答