2012-07-19 90 views
0

我有如下定義的外部JS函數中test.js調用從外部JavaScript文件

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

嘗試onclick =「JavaScript:return InvokeSupport();」另外請注意,您沒有傳遞參數,但是您正在使用它們來構造您的URL,可能會再次爲您提供這些參數的未定義錯誤。 – Asdfg 2012-07-19 13:27:57

+0

您沒有將任何參數傳遞給函數 – Musa 2012-07-19 13:28:30

+0

道歉我傳遞參數我只是忘了把它們包含在那裏。這不會返回一個未定義的參數。我試過了JavaScript返回和這個工作:( – heymega 2012-07-19 13:34:05

回答

2

爲什麼在外部js文件中使用ASP.NET腳本標記?

將數據從配置作爲和附加參數傳遞給javascript函數。

此外,您還可以使用Firebug和Chrome devTools它可以告訴你一個地方錯誤的發生

+0

謝謝:)我很驚訝你不能在外部js文件中使用ASP.Net腳本標記,但我想它是有道理的。 – heymega 2012-07-23 08:20:28

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>