从外部Javascript文件调用方法

从外部Javascript文件调用方法,javascript,asp.net,html,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, "Supp

我在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);   
}
函数调用支持(ID、时间戳、哈希){
var sUrl=“”+”?uid=“+ID+”&t=“+TimeStamp+”&hash=“+hash;
打开(sUrl,“支持”,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文件的链接是正确的,因为同一存储库中的其他文件工作正常


知道我做错了什么吗?

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

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

此外,您还可以使用Firebug和Chrome开发工具,它们可以向您显示发生错误的位置

这应该是可行的

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>
函数调用支持(url、ID、时间戳、哈希){
var sUrl=url+“?uid=“+ID+”&t=“+TimeStamp+”&hash=“+hash;
打开(sUrl,“支持”,null,false);
}

try onclick=“JavaScript:return InvokeSupport();”还请注意,您没有传递参数,但您正在使用这些参数构造URL,这可能会再次为这些参数带来未定义的错误。您没有向函数传递任何参数。我在传递参数,只是忘了在那里包含它们。但这不会返回未定义的参数。我尝试了JavaScript返回,这是最有效的:(谢谢:)我很惊讶你不能在外部js文件中使用ASP.Net脚本标记,但我想这是有道理的。