jQuery 플러그인이 로드되었는지 확인하려면 어떻게 해야 합니까?
특정 플러그인이 사용 가능한지 확인할 수 있는 방법이 있습니까?
로드되는 다른 플러그인에 의존하는 플러그인을 개발하고 있다고 상상해 보십시오.
예를 들어 jQuery Validation 플러그인이 날짜를 사용하기를 원합니다.지정된 날짜가 유효한지 확인하는 JS 라이브러리.날짜가 지정된 경우 jQuery Valdation 플러그인에서 탐지하는 가장 좋은 방법은 무엇입니까?JS 가능했어요?
일반적으로 jQuery 플러그인은 jQuery 범위의 네임스페이스입니다.단순 검사를 실행하여 네임스페이스가 존재하는지 확인할 수 있습니다.
if(jQuery().pluginName) {
//run plugin dependent code
}
dateJs는 그러나 jQuery 플러그인이 아닙니다.jQuery 네임스페이스로 추가되지 않고 javascript date 개체를 수정/확장합니다.다음과 같은 방법이 필요한지 확인할 수 있습니다.
if(Date.today) {
//Use the dateJS today() method
}
그러나 API가 네이티브 Date API와 중복되는 문제가 발생할 수 있습니다.
적절한 jQuery 플러그인(fn 네임스페이스를 확장하는 플러그인)을 말하는 경우 플러그인을 탐지하는 적절한 방법은 다음과 같습니다.
if(typeof $.fn.pluginname !== 'undefined') { ... }
또는 모든 플러그인이 참과 동일한 값을 갖는 것이 거의 보장되기 때문에 더 짧은 값을 사용할 수 있습니다.
if ($.fn.pluginname) { ... }
그런데 $와 jQuery는 플러그인 주위의 이상해 보이는 포장지가 보여주듯이 상호 교환이 가능합니다.
(function($) {
//
})(jQuery))
폐막
(function($) {
//
})
그 직후에 jQuery를 매개 변수로 '통과'하는 클로저에 대한 호출이 이어집니다.
(jQuery)
마감 시 $가 jQuery와 동일하게 설정됩니다.
jQuery 플러그인을 감지하기 위해 괄호를 사용하는 것이 더 정확했습니다.
if(jQuery().pluginName) {
//run plugin dependent code
}
fn 네임스페이스를 사용하지 않는 플러그인(예: pnotify)의 경우 다음과 같이 작동합니다.
if($.pluginname) {
alert("plugin loaded");
} else {
alert("plugin not loaded");
}
이것은 작동하지 않습니다.
if($.fn.pluginname)
브라우저 콘솔에서 실행합니다.
if(jQuery().pluginName){console.log('bonjour');}
플러그인이 존재하는 경우 콘솔에서 응답으로 "봉주르"를 출력합니다.
jQuery는 함수인지 확인하는 방법이 있습니다.
if ($.isFunction($.fn.dateJS)) {
//your code using the plugin
}
API 참조 : https://api.jquery.com/jQuery.isFunction/
DateJS 라이브러리를 당신의 플러그인과 함께 묶어서 당신이 그것을 했다는 사실을 문서화하는 것을 강력히 추천합니다.의존성을 찾아내야 하는 것만큼 실망스러운 것은 없습니다.
하지만 법적인 이유로 항상 모든 것을 묶을 수는 없을지도 모릅니다.Eran Galperin의 답변을 이용하여 플러그인의 존재를 확인하고 주의하는 것 또한 결코 상처가 되지 않습니다.
이런 식의 접근이 효과가 있을 겁니다.
var plugin_exists = true;
try {
// some code that requires that plugin here
} catch(err) {
plugin_exists = false;
}
언급URL : https://stackoverflow.com/questions/400916/how-can-i-check-if-a-jquery-plugin-is-loaded
'programing' 카테고리의 다른 글
| 다양한 제품 맛에 대해 서로 다른 의존성을 정의하는 방법 (0) | 2023.09.08 |
|---|---|
| 메뉴 항목을 작업 표시줄에 숨기려면 어떻게 해야 합니까? (0) | 2023.09.08 |
| jQuery get the image src (0) | 2023.09.08 |
| javascript node.js next() (0) | 2023.09.08 |
| Spring MVC @ExceptionHandler 방법에 대한 Spring MVC 시험 (0) | 2023.09.08 |