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 では、ブラウザがすべての「Web リクエストを開いて結果を取得する」処理を行っています。そして、変数に値を入れるために 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 を調べて、応答から必要なデータを取得する方法を考え出す必要があります。または、Web サイトにアクセスできる別の API があるかどうかを調べます。

于 2013-03-19T16:09:14.760 に答える