从外部Javascript文件调用方法

时间:2012-07-19 13:24:49

标签: javascript asp.net html

我在test.js

中保存了下面定义的外部JS函数
function InvokeSupport(ID, TimeStamp, Hash) {

    var sUrl = '<%= System.Configuration.ConfigurationManager.AppSettings["URL"] %>' + "?uid=" + ID + "&t=" + TimeStamp + "&hash=" + Hash;

    window.open(sUrl, "Support", null, false);   
}

在我的asp.net页面上,我有以下内容。

<script type="text/javascript" src="../../../scripts/test.js"></script>

<div class="User">
    <span class="UserName"><button type="submit" title="Help!" onclick="InvokeSupport()" class="Class1"></button> </span>
</div>

问题

InvokeSupport函数作为未定义返回并且无法工作,除非我将该函数放在它工作的ASP.net页面上。 javascript文件的链接是正确的,因为我在同一个存储库中的其他文件正常工作。

知道我做错了吗?

2 个答案:

答案 0 :(得分:2)

为什么在外部js文件中使用ASP.NET脚本标记?

将配置中的数据和附加参数传递给javascript函数。

此外,您可以使用Firebug和Chrome devTools,它可以显示错误发生的地方

答案 1 :(得分:0)

这应该有用。

function InvokeSupport(url, ID, TimeStamp, Hash) {

    var sUrl = url + "?uid=" + ID + "&t=" + TimeStamp + "&hash=" + Hash;

    window.open(sUrl, "Support", null, false);   
}


<script type="text/javascript" src="../../../scripts/test.js"></script>

<div class="User">
    <span class="UserName"><button type="submit" title="Help!" onclick="InvokeSupport('<%= System.Configuration.ConfigurationManager.AppSettings["URL"] %>',1,2,3)" class="Class1"></button> </span>
</div>