我如何发送一个字符串从代码后面的javascript变量,在页面加载
How do I send a string from code behind to a variable in javascript, on page load?
我想发送一个字符串,我使用StringBuilder
构建到HTML页面,然后我想在我的JavaScript代码中使用。
现在我正在做的是:
客户端:
<div id="data">
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
在我的JS块中:
var data = $("#data").html();
后面的代码:
Literal1.Text = strXml.ToString();
问题是,这个数据可以通过data
div的源代码看到,我不希望允许。
我想要这个字符串,只要页面加载,所以我想在页面加载到服务器后进行AJAX调用是不可能的。
有更流畅的方法吗?
这是一个。net新手。:)
你可以将字符串保存在HiddenField
中,然后使用javascript读取其值,就像这样
<asp:HiddenField runat="server" ID="MyHidden">
后面代码中的MyHidden.Value = strXml.ToString();
javascript var data = $('#<%=MyHidden.ClientID%>').val();
或者您可以将strXml
定义为protected
变量,并在.aspx
中使用它,如
public class _MyPage:Page
{
Protected String strXml;
private void Page_Load(Object sender,EventArgs e)
{
StringBuilder mystrBuilder = new StringBuilder();
//append some text to mystrBuilder
strXml = mystrBuilder.ToString();
}
}
javascript代码将像这样
var data = '<%=strXml%>';
你的方法对我来说看起来很好,另一种选择是使用隐藏的input
:
<input type="hidden" runat="server" id="data" />
后面的代码:
this.data.Value = strXml;
在JavaScript: var data = $("#data").val();
像div
一样,但是您将能够看到在页面源中提交的值,但是,如果我正确理解您的要求,这是不可避免的通过能够在JavaScript中访问此数据的非常要求-最好您可以混淆此数据,但是有人足够确定足够将能够检查和查看此数据,无论您选择哪种方法。
如果数据不敏感,那么继续将其放在表单的隐藏字段中,不用担心它。如果数据是敏感的,并且用户不打算看到它,那么您可能应该重构您的页面,以便在服务器上完成处理,并且只有应该可见的部分出现在浏览器中。
还有其他一些将内容放入页面的方法,如隐藏字段和数据孤岛,但它们在页面源中仍然是可见的。
您可以混淆数据以使其更难阅读,但是在解扰后暂停脚本使用数据的地方仍然很容易,并且数据仍然可见。
因此,如果您希望在页面加载时立即获得数据,则需要将其包含在页面中,并且用户可以看到它
相关文章:
- 将函数的上下文应用于javascript变量
- 如何通过ajax刷新JSF填充的javascript变量
- Javascript变量赋值|
- 限制javascript变量的最小/最大整数
- 来自文本输入null的html javascript变量
- 访问jsrender模板中的全局javascript变量并更新它
- 从数据库中获取数据并插入JavaScript变量
- 如何将javascript变量传递到Meteor Spacebars模板中
- 将JavaScript变量保存到Rails模型
- 在if语句下的html中使用javascript变量
- Javascript变量分配-按类别
- 操作javascript变量[HTML]以只显示文本
- 无法比较javascript变量
- 如何将smarty变量与javascript变量进行比较
- 如何使用PHP将javascript变量添加到mysql数据库中
- Javascript 变量使用 jquery 查找变量
- 重新加载页面时Javascript变量发生变化
- 在asp classic中使用javascript变量
- 全局Javascript变量变为null
- 如何向服务器端提交javascript变量