Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
274 views
in Technique[技术] by (71.8m points)

javascript - For condition running only once when calling JS File

I am running a Javascript from c# code.

  for(int i=0;i<=2;i++)
   {
        Page.ClientScript.RegisterStartupScript(GetType(), "a", "foo("hello")", true);
   }

Js File

Function foo(a){
alert(a);
//some other logic
}

Here, the problem is when i debug the code, i can see loop going for 3 times, but the alert appears only once.

Why does it appear only once ? How can I solve this ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

What @Lloyd said is correct, the + i is necessary to make unique pairs.

Try this:

for (int i = 0; i <= 2; i++)
{
    Page.ClientScript.RegisterStartupScript(GetType(), "a"+ i, "foo('hello');", true);
}

You were missing the semicolon at the end of the javascript function.

This is what was being generated with what @Lloyd suggested

<script type="text/javascript">
//<![CDATA[
foo("hello")foo("hello")foo("hello")//]]>
</script>

And this is what you want:

<script type="text/javascript">
//<![CDATA[
foo('hello');foo('hello');foo('hello');//]]>
</script>
</form>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...