对于在调用JS File时只运行一次的条件

时间:2015-06-18 22:04:15

标签: javascript c# jquery asp.net

我正在使用c#代码运行Javascript。

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

Js档案

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

这里的问题是,当我调试代码时,我可以看到循环进行3次,但警报只出现一次。

为什么只出现一次?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

@Lloyd所说的是正确的,+ i是制作唯一对的必要条件。

试试这个:

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

你错过了javascript函数末尾的分号。

这是用@Lloyd建议的

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

这就是你想要的:

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

答案 1 :(得分:0)

您使用相同的密钥从MSDN注册启动脚本三次:

  

启动脚本由其密钥及其类型唯一标识。   具有相同密钥和类型的脚本被视为重复。只有一个   具有给定类型和密钥对的脚本可以在页面中注册。   尝试注册已注册的脚本不会   创建脚本的副本。

启动脚本本身只运行一次。

例如,看看当你这样做时会发生什么:

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