我想调用已经在服务器端的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功能。
答案 0 :(得分:2)
您无法使用Javascript代码中的HiddenField
值,因为这些值实际上并未在发送到客户端浏览器的HTML中呈现。从技术上讲,它们存在于客户端之间来回发送的ViewState
中,但这并不是Javascript可以使用的东西。
Javascript代码在客户端的计算机上执行,这意味着您需要将所有代码(以及运行该代码所需的值)发送到客户端。隐藏值的最简单方法是将其放在隐藏的HTML元素中,如下所示:
<span id="myHiddenValue" style='display: none'>MyValue</span>
但正如您所知,用户只需查看页面来源即可轻松查看。你可以期待的最多就是混淆你的Javascript代码,这使得它在人类基本上不可读的同时仍然可以正常运行。它并非万无一失,并且可能会被任何使用最少努力的人逆转。在许多情况下,混淆还可以提供压缩代码的附带好处,使其更小,并减少页面加载时间。
看看this question,了解如何实现这一目标的一些很好的例子。