2011-05-13 23 views
2

有一個MVC 3剃鬚刀部分頁面是依賴於jquery.validate.jsjquery.validate.unobtrusive.js我如何檢查是否jQuery的包被引用

部分頁面是否可以檢查是否存在對.js包的引用?

由於這是一個局部頁面,因此_Layout.cshtml或另一個包含的局部頁面已經引用.js包是可能的/可能的。爲了避免對.js包的重複引用,我希望部分頁面能夠確定是否需要添加對包的引用。

回答

1

您可以檢查是否jQueryjQuery.validate定義,如果它不能加載腳本,但它不是真的值得去努力 - 瀏覽器緩存js文件,所以如果你有兩個引用,它只會下載一旦。

1

我不確定這是否解決了您的問題,但有一個名爲getScript的jquery函數通過get請求加載服務器腳本。

http://api.jquery.com/jQuery.getScript/

因爲它在全球運行時,它可能會解決YOUT問題。你只需要這樣做:

$.getScript('url.js', function(){ 
// 
}); 
3

下面一段js代碼會檢查兩個插件是否已經添加到jQuery對象。

if (jQuery.validator != undefined && jQuery.validate != undefined) { 
    //do something 
} 
+1

如果沒有加載jQuery,這實際上會中斷,因爲jQuery對象不會被定義。您還需要檢查jQuery是否先定義。 – Andrey 2011-05-13 18:39:39

+0

的確如此,但沒有理由不能確定jQuery是否也未定義。該技術仍然適用。你的回答根本沒有解決這個問題。我的依然是正確的。 – 2011-05-13 18:41:22

+0

其實我誤解了這個問題,我糾正了我以前的評論。 – Andrey 2011-05-13 18:42:57