javascript - 从后面的代码将 javascript 放在页面上

标签 javascript asp.net

我有一些其他的 javascript 函数,它们是在我正在使用的文本框的 onfocus 和 onblur 事件上设置的。在这些函数中,它调用与任何控件无关的通用 javascript 函数。我想知道如何简单地将此函数从后面的代码吐出到页面的 html 中。像这样的……

Page.ClientScript.RegisterStartupScript(this.GetType(), "?????", getCounter);

编辑:这就是我的意思

public class MVADTextBox : TextBox
        {
 protected override void OnLoad(EventArgs e)
            {
 var getCounter = "<script language=\"javascript\">" +
                                "function GetCounter(input) {" +
                                    //this function gets the number of special characters taht are in a row.
                                    //it is only the grouping of characters that are right after your current position
                                    "var textbox = document.getElementById(input.id);" +
                                    "var mask = textbox.getAttribute('Mask');" +
                                    "var inputCharacters = textbox.getAttribute('InputCharacters');" +
                                    "var tbid = \"#\" + input.id;" +
                                    "var position = $(tbid).caret().start;" +
                                    "var counter = 0;" +
                                    "for (var i = position; i < mask.length; i++) {" +
                                    "     if (mask[i] != '#') {" +
                                    "        counter++;" +
                                    "        if (mask[i + 1] == '#') {" +
                                    "            break;" +
                                    "        }" +
                                    "    }" +
                                    "}" +
                                    "return counter;" +
                               " }" +
                            "</script>";

                            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "OnFocus", onFocus);
                            Page.ClientScript.RegisterStartupScript(this.GetType(), "GetCounter(input)", getCounter);



var onBlur = "<script language=\"javascript\"> function PopulateField(input) {if (input.value == \"\") {input.value = input.defaultValue; input.className = 'sampleText'; } } </script>";


  Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "OnFocus", onFocus);

  Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "OnBlur", onBlur);
    }
}

正在将 on blur 方法发送到页面。

最佳答案

答案:

我相信 Page.ClientScript 已被弃用。您应该使用 ClientScriptManager

将您的 "??????" 替换为脚本的名称。老实说,脚本的名称几乎没用(除非您稍后需要检查它是否存在)。

ClientScriptManager.RegisterStartupScript(this.GetType(), "myCount", getCounter);

用法说明:

//You must surround your code with script tags when not passing the bool param
ClientScriptManager.RegisterStartupScript(this.GetType(),
                   "myCount",
                   "<script>alert('Hey')</script>");

// The last param tells .Net to surround your
// code with script tags (true) or not (false)
ClientScriptManager.RegisterStartupScript(this.GetType(),
                   "myCount",
                   "alert('Hey')", true);

附加信息:

来自 MSDN 的签名:

public void RegisterStartupScript(
    Type type,
    string key,
    string script
)

public void RegisterStartupScript(
    Type type,
    string key,
    string script,
    bool addScriptTags
)

参见:http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerstartupscript.aspx

关于javascript - 从后面的代码将 javascript 放在页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8358571/

相关文章:

Javascript对象指的是它本身的值

带有 LineBreak 的 ASP.Net 文本从 Multi-Line-TextBox 保存在数据库中

.net - 是什么导致 "HTTP status 401: OK"

c# - jquery模态对话框打开带有多个图像的图像onclick

javascript - AngularJs ui.bootstrap 问题 - 折叠不起作用

javascript - React/Javascript If 语句在 map 内

javascript - 将 MVC javascript 部分正确转换为纯 javascript 文件

javascript - Chartjs 自定义 y 轴值,每个值都有不同的文本

c# - 从网页预填充网页

asp.net - 为什么我在选择网页上的默认单选按钮时遇到问题?