コードビハインド ドキュメントによって作成された JavaScript コードを実行しようとしています。
<script type="text/javascript">
function GetMap() {
//some javascript
}
function AssetDescription(var1, var2, var3) {
//some javascript using var1, var2, and var3
}
function test() {
alert("test position 1");
var onloadText = document.getElementById("points").value;
alert(onloadText);
eval(onloadText);
alert("after eval");
}
window.onload = test;
</script>
<body runat="server">
<input type="hidden" id="points" runat="server" />
</body>
コードビハインド
protected void Page_Load(object sender, EventArgs e) {
points.Attributes.Add("value", Iterations());
}
public string Iterations() {
string toReturn = "GetMap(); \n";
//assetRow is an array of strings. The strings are in the format "var1, var2, var3"
for (i=0; i<numberOfAssets; i++)
{
toReturn = toReturn + "AssetDescription("+assetRow[i]+"); \n";
}
return toReturn;
}
うまくいけば、私はこれらすべてを可能な限り明確にしました。これは、私の質問に関連すると思われるすべてのコードです。私はこれを設定する他の方法を受け入れます。
body.onload 要素を設定して、コードビハインドから直接 JavaScript を含めようとしましたが、役に立ちませんでした。このコードをタグに直接追加したいのですが、ASPX にはその機能がないと思うので、これが私が作成した回避策です。
これは私が見つけた最も有望な方法のようです。私はこれらのフォーラムを検索しましたが、ほとんどの人が eval() は悪い考えだと言っています。言うまでもなく、それは機能していません。しかし、もしあれば、より堅牢な代替手段が欲しいです。
alert("after eval")
アラートは発生しませんが、alert("test position 1")
両方alert(onloadText)
が発生します。