我在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文件的链接是正确的,因为我在同一个存储库中的其他文件正常工作。
知道我做错了吗?
答案 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>