我如何发送一个字符串从代码后面的javascript变量,在页面加载

How do I send a string from code behind to a variable in javascript, on page load?

本文关键字:javascript 变量 加载 代码 何发送 字符串 一个      更新时间:2023-09-26

我想发送一个字符串,我使用StringBuilder构建到HTML页面,然后我想在我的JavaScript代码中使用。

现在我正在做的是:

客户端:

<div id="data">
    <asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>

在我的JS块中:

var data = $("#data").html();

后面的代码:

Literal1.Text = strXml.ToString();

问题是,这个数据可以通过datadiv的源代码看到,我不希望允许。

我想要这个字符串,只要页面加载,所以我想在页面加载到服务器后进行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中访问此数据的非常要求-最好您可以混淆此数据,但是有人足够确定足够将能够检查和查看此数据,无论您选择哪种方法。

如果数据不敏感,那么继续将其放在表单的隐藏字段中,不用担心它。如果数据敏感的,并且用户不打算看到它,那么您可能应该重构您的页面,以便在服务器上完成处理,并且只有应该可见的部分出现在浏览器中。

还有其他一些将内容放入页面的方法,如隐藏字段和数据孤岛,但它们在页面源中仍然是可见的。

您可以混淆数据以使其更难阅读,但是在解扰后暂停脚本使用数据的地方仍然很容易,并且数据仍然可见。

因此,如果您希望在页面加载时立即获得数据,则需要将其包含在页面中,并且用户可以看到它