0

我正在使用这个脚本,这个返回与我的 IP 地址相关的信息

<script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesCountry,GeobytesCity,GeobytesRegion,GeobytesLatitude,GeobytesLongitude">
</script>


<script language="Javascript">
    document.write("<p>Welcome to visitors from " + sGeobytesCity + ", " + sGeobytesCountry + ", " + sGeobytesRegion + ", " + sGeobytesLatitude + ", " + sGeobytesLongitude);
</script>

有什么方法可以在文件后面的代码(aspx.cs)中使用此脚本并将它们存储到某个变量中...

喜欢

protected void Page_Load(object sender, EventArgs e)
{
string city = sGeobytesCity;
}
4

3 回答 3

1

使用 asp 文字控件。

document.write('<p>Welcome to visitors from <asp:Literal id="sGeobytesCity" runat="server"' />);

然后在你的代码后面。

sGeobytesCity.Text = HttpUtility.JavaScriptStringEncode("yourCityNameHere");

javascript 编码器的主要目的是删除任何可能过早终止字符串的单撇号或双引号,从而允许 javascript 错误或恶意注入。

于 2013-03-19T16:03:14.920 回答
0

尝试将脚本中的数据保存在hidden输入中,runat=server然后从后面的代码中可以访问此隐藏的输入。

<input type="hidden" runat="server" id="hiddenData" />

然后

string data = hiddenEntityId.Value; //to get the data back
于 2013-03-19T16:07:16.067 回答
0

是的,但这一点都不简单。在 javascript 中,浏览器正在为您处理所有“打开网络请求,获取结果”。它正在运行 javascript ,以便您将值放入变量中。在你自己做的代码后面。此示例来自http://msdn.microsoft.com/en-GB/library/system.net.webrequest.aspx

// Create a request for the URL.        
WebRequest request = WebRequest.Create ("http://gd.geobytes.com/gd?after=-1&variables=GeobytesCountry,GeobytesCity,GeobytesRegion,GeobytesLatitude,GeobytesLongitude");
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Stream dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader (dataStream);
var responseFromServer = reader.ReadToEnd ();
reader.Close ();
dataStream.Close ();
response.Close ();

然后,您必须查看 responseFromServer 并找出如何从响应中获取所需的数据。或者找出该网站是否有您可以访问的不同 api。

于 2013-03-19T16:09:14.760 回答