저는 jQuery $ .getScript로 자바 스크립트를 실행합니다. 실행 된 스크립트에서 내 소스 파일의 함수 및 변수에 액세스하지 못했습니다.
해결책이 있습니까?
저는 jQuery $ .getScript로 자바 스크립트를 실행합니다. 실행 된 스크립트에서 내 소스 파일의 함수 및 변수에 액세스하지 못했습니다.
해결책이 있습니까?
$ .getScript()가 실행하는 스크립트 은이 전역 컨텍스트에 액세스 할 수 있습니다. 외부 스크립트에서 모든 전역 변수 (또는 그 기능에 대한 함수)를 사용할 수 있습니다.
닉 크레이 버 (Nick Craver), 나는 단지 내 일이 왜 작동하지 않는지에 집착하며 시간을 보내고, 내가 작동하게하는 데 필요한 통찰력을 나에게주었습니다.
XOXOXOXOXOXOXOXO
흥미로운 참고 사항 :
는이 같은 JQuery와 var과 같은 변수를 선언 할 수
$variableName = something;
그 방법 JQuery와는 아무 곳이나 범위의 IT에 액세스 할 수 있습니다.
$(function(){
$alertString = 'Hello World';
$.getScript('test.js', function(){
// do nothing
});
}
test.js:
alert($alertString);
나는 주제의 나의 이해 여기 도움이 답을 찾았지만, 난 아직도 this article on TechMonks 우연히 때까지 내 자신의 환경에서 작동 만들 수 없습니다 : 나는 복사 할 때/최종 붙여
예를 들어 내 주요 .js 파일의 머리 부분을 모두 방금 작업했습니다. 나에게 적어도 $ .getScript() 함수는 깨져서 수정되었습니다.
jQuery.extend({
getScript: function (url, callback) {
var head = document.getElementsByTagName("head")[0] || document.documentElement;
var script = document.createElement("script");
script.src = url;
// Handle Script loading
{
var done = false;
// Attach handlers for all browsers
script.onload = script.onreadystatechange = function() {
if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
done = true;
//success();
//complete();
if (callback) callback();
// Handle memory leak in IE
script.onload = script.onreadystatechange = null;
if (head && script.parentNode) {
head.removeChild(script);
}
}
};
}
head.insertBefore(script, head.firstChild);
return undefined;
}
});
매우 유용하고 재미 있습니다. –
'$'로 시작하는 변수는 특별한 것이 없으므로 다른 문자와 마찬가지로 작동합니다. 참고로 다음 질문을 참조하십시오. http://stackoverflow.com/questions/205853/why-would-a-javascript-variable-start-with-a-dollar-sign –