我有一个JavaScript函数,我编写并嵌入.aspx页面。我在函数顶部声明了变量,它们访问ConfigurationManager.AppSettings以及sessionState标记,如下所示:
var Value1 = "<%= System.Configuration.ConfigurationManager.AppSettings["Value1"].ToString()%>";
var Value2 = "<%= Session.Timeout %>";
这个功能一直很好用。我已经意识到我需要在其他四个页面上使用该功能,因此我决定将其移动到外部JavaScript文件中。根据这个问题和接受的答案......
Accessing ConfigurationManager.AppSettings in Java script
...外部JavaScript文件不会评估这些&#34;服务器端代码中的代码&#34;因此,必须从.aspx页面作为参数传递web.config文件中的值。我将该函数移动到外部JavaScript文件并调用如下函数:
<script src="Scripts/JavaScript.js" type="text/javascript">
var Value1 = "<%= System.Configuration.ConfigurationManager.AppSettings["Value1"].ToString()%>";
var Value2 = "<%= Session.Timeout %>";
externalFunction(Value1, Value2)
</script>
外部JavaScript函数开头如下:
function externalFunction(Value1_, Value2_) {
debugger;
var Value1 = Value_1;
var Value2 = Value_2;
...
}
在我调试JavaScript函数时,参数本身是未定义的。我在这里缺少什么?
我尝试过以下两种方式调用该函数。
<script src="Scripts/JavaScript.js" type="text/javascript">
var Value1 = "1";
var Value2 = "2";
externalFunction(Value1, Value2);
</script>
<script src="Scripts/JavaScript.js" type="text/javascript">
var Value1 = "1";
var Value2 = "2";
</script>
<script src="Scripts/JavaScript.js" type="text/javascript">
externalFunction(Value1, Value2);
</script>
使用IE的调试器,我可以看到从web.config文件中正确地提取了值,但该函数仍未被调用。我很难过。
答案 0 :(得分:2)
尝试使用两个单独的脚本标记,并查看其他任何不同的标记。
<script src="Scripts/JavaScript.js"></script>
<script type="text/javascript">
var Value1 = "<%= System.Configuration.ConfigurationManager.AppSettings["Value1"].ToString()%>";
var Value2 = "<%= Session.Timeout %>";
externalFunction(Value1, Value2);
</script>