jquery-ui 및 jquery min에 액세스해야하는 북마크릿에서 작업하고 있습니다. 물론 페이지에 이미 jQuery가로드되고 충돌이 발생하지 않도록주의해야합니다. 내가 정상적으로 jQuery를 소개 할 수 있었다뿐만 아니라 를로드하는 UI 해킹하지만 지연에 문제가있는 것 같습니다 및 jQuery를 UI를 잘 갈 준비가없는 한 http://benalman.com/code/javascript/jquery/jquery.ba-run-code-bookmarklet.js에서 발견에 벤 독일어의 코드를 사용하여북마크릿에 jQuery 및 jQuery UI가로드되어 있지 않은 경우로드 중
멀리 ...
실제 코드를 실행하기 전에 두 스크립트를 순서대로로드하는 것을 처리하는 더 좋은 방법이 있습니까?
(function(window, document, jQuery, req_version, callback, callback_orig, parent, script){
if (!window[jQuery] || req_version > window[jQuery].fn.jquery) {
parent = document.documentElement.childNodes[0];
script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js';
parent.appendChild(script);
callback_orig = callback;
callback = function($, L) {
'$:nomunge, L:nomunge';
$(script).remove();
callback_orig($, L);
};
}
if (typeof jQuery.ui == 'undefined'){
parent = document.documentElement.childNodes[0];
scriptui = document.createElement('script');
scriptui.type = 'text/javascript';
scriptui.src = 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.js';
parent.appendChild(scriptui);
alert('Loading your matches...');
}
(function loopy($){
'$:nomunge'; // Used by YUI compressor.
($ = window[jQuery]) && req_version <= $.fn.jquery
? callback(parent ? $.noConflict(1) : $, !!parent) : setTimeout(loopy, 50);
})();
})(window, document, 'jQuery', '1.3.2',
function($,L) {
'$:nomunge, L:nomunge';
<all the jquery stuff goes here>
이 깊이있는 답변 Using jQuery UI in a Bookmarklet에서 비슷한 질문입니다하지만 난에 "표준"JS CoffeeMarklet에서 이것을 번역 할 수 없었다.
아, 너무 일찍 말했습니다. 내가 본 페이지에는 이미 UI가로드되어 js : [ 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js']에 추가되어 오류 : arr 정의되지 않았습니다, 선 74 (63 동성애 술집) –
죄송합니다. 내 사과. ''''''''스크립트''로 변경해야합니다. 나는 그 요지를 갱신했다. –
또한 'https : //', 'http : //'또는 '//'중 하나를 사용하십시오. 마지막 프로토콜 친화적 인 URL입니다. 스크립트에는 물건을로드 할 수있는 완전한 URI가 필요합니다. –