如何从ASP隐藏值调用javascript函数?

时间:2013-05-03 13:34:47

标签: javascript asp.net

我想调用已经在服务器端的ASP HiddenValue中定义的javascript函数(.ie文件中的.ie)。

我已定义如下

<。>在.cs方面:

    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Attributes.Add("onclick", "javascript:return CallFun();");
        HF2.Value = " function() { alert('yes its working.... Woooww')};";
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
       Response.Write("Yea its working woooooowww...");
    }

在aspx中:

    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    <asp:HiddenField ID="HF2" runat="server" />

在js方面:

function CallFun() {
    var hf2val = document.getElementById('HF2');
    //var hf2val = document.getElementById('HF2').value;        
    hf2val();
    //window[hf2val]();        
    return false;
}

我尝试了很多次并在谷歌搜索但我没有得到正确的答案。 但如果我写下面

,它会奏效

in .cs

    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Attributes.Add("onclick", "javascript:return yes();");
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("Yea its working woooooowww...");
    }

在js:

function yes() {

    var just = function() { alert('yes its working.... Woooww')};
    just();
    return false;
}

在aspx中:

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

但我不想像上面那样展示。我的目标是在View source,Firebug中隐藏日历功能等javascript功能。

1 个答案:

答案 0 :(得分:2)

您无法使用Javascript代码中的HiddenField值,因为这些值实际上并未在发送到客户端浏览器的HTML中呈现。从技术上讲,它们存在于客户端之间来回发送的ViewState中,但这并不是Javascript可以使用的东西。

Javascript代码在客户端的计算机上执行,这意味着您需要将所有代码(以及运行该代码所需的值)发送到客户端。隐藏值的最简单方法是将其放在隐藏的HTML元素中,如下所示:

<span id="myHiddenValue" style='display: none'>MyValue</span>

但正如您所知,用户只需查看页面来源即可轻松查看。你可以期待的最多就是混淆你的Javascript代码,这使得它在人类基本上不可读的同时仍然可以正常运行。它并非万无一失,并且可能会被任何使用最少努力的人逆转。在许多情况下,混淆还可以提供压缩代码的附带好处,使其更小,并减少页面加载时间。

看看this question,了解如何实现这一目标的一些很好的例子。