我有以下脚本和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
}
});
如何在运行时添加这些脚本?
谢谢,
答案 0 :(得分:1)
您可以使用Page.RegisterStartupScript
if (shouldShow) {
Page.RegisterStartupScript...
}
答案 1 :(得分: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的情况下才显示,但在这种情况下它不会被添加。
但是,为什么不简单地将它放在某些asp:panel
中,并将其可见性设置为true / false,具体取决于它是否应该显示?如果某个asp.net元素有elem.Visibility = false
,则它不会发送到浏览器,与其所有内容相同。