2009-05-29 4 views
16

먼저주의해야합니다. 주된 스크립트는 웹 페이지에서 실행되지 않는 입니다. Windows Script Host를 사용하여 Windows에서 .js 파일을 실행합니다.별도의 파일로 자바 스크립트 라이브러리를 만들고 다른 라이브러리에 "포함"할 수 있습니까?

문제 : 나는 많은 기능을 가진 다수의 객체를 포함하는 자바 스크립트 "라이브러리"를 만들고 싶습니다. 이 라이브러리는 시간이 많이 걸릴 것이고 별도의 자바 스크립트 파일에 보관하고 싶습니다 (Library.js). 다른 스크립트에서 Library.js의 개체에 액세스하고 싶습니다.이 스크립트를 User.js이라고 부릅니다.

본질적으로 C/C++ "include"패러다임과 비슷한 것을 찾고 있습니다.

어쨌든 이것을 자바 스크립트에서 구현할 수 있습니까? (웹 기반이 아닙니다.)

+1

비슷한 질문 : http://stackoverflow.com/questions/316166/how-do-i-include-a-common-file- in-vbscript-similar-to-c-includes – Helen

답변

19

This page right here 내가 찾을 수있는 가장 가까운 것입니다. 하나의 파일에 여러 스크립트 (여러 언어로 작성 가능)를 결합 할 수있는 .wsf 파일에 대해 설명합니다.

user.wsf

<job id="IncludeExample"> 
    <script language="JScript" src="library.js"/> 
    <script language="JScript"> 
     <![CDATA[ 
     // use your library functions here 
     ]]> 
    </script> 
</job> 

가있을 수 있습니다 더 나은 방법,하지만 난 WSH 전문가가 아니에요 : 귀하의 질문에 뭔가 같이해야 들어

.

+0

Geesh ... 답변 : ...-) – Dscoduc

1

특정 .js 또는 .vbs 파일 대신 Windows Scripting Host를 사용하여 목표를 달성 할 수 있습니다. 자세한 내용은 the MSDN site에서 확인할 수 있습니다. 링크에서

:

윈도우 스크립트 (*이 .wsf) 파일은 확장 마크 업 언어 (XML) 코드를 포함하는 텍스트 문서입니다. 스크립팅 유연성이 향상되는 몇 가지 기능이 통합되어 있습니다. Windows 스크립트 파일은 엔진에 따라 엔진이 아니기 때문에 Windows 스크립트 호환 스크립팅 엔진의 스크립트를 포함 할 수 있습니다. 그들은 을 컨테이너로 사용합니다. ...

수정주의 :

에서 업데이트

wscript.exe를의 myScriptFile.wsf :

당신은 .js와 .VBS 파일과 같은 구문을 사용 lthe 파일을 살았어 것

+0

스크립트 호스트는 vbscript.exe가 아닌 cscript.exe 또는 wscript.exe입니다. – Helen

13

나는 이것이 오래된 질문이며 답변을 받아 들였습니다.

나는 .WSF 파일에 대해 알고 있으며 어떻게 작동 하는지를 알고 있습니다. 그들은 목적을 수행한다.

그러나 WSH에서 실행되는 순수 .js 파일에서 "포함"을 수행하는 것이 편리하다는 것도 발견했습니다. 여기에 대한 나의 해결책이있다.

includeFile("externalFile1.js"); 
includeFile("externalFile2.js"); 
includeFile("etc.js"); 

을 ... 그리고 I은 함수를 호출 또는 정의 된 변수들 중 하나를 자극 할 수 정의 된 유틸리티 함수와

function includeFile (filename) { 
     var fso = new ActiveXObject ("Scripting.FileSystemObject"); 
     var fileStream = fso.openTextFile (filename); 
     var fileData = fileStream.readAll(); 
     fileStream.Close(); 
     eval(fileData); 
    } 

, I는 자바 스크립트 모듈 내에서 할 수있다 그 모듈들.

유사한 기술은 .VBS 파일과 함께 작동합니다
여기 How do I include a common file in VBScript (similar to C#include)?

+0

+1 링크 http://stackoverflow.com/questions/316166 – 0xC0000022L

+3

이'includeFile' 함수를 사용했지만 불행히도이 함수 내부의'eval'은 파일의 나머지 부분에 영향을주지 않습니다. 'eval'은 함수 내에서만 작동하며 전역 효과는 없습니다. 나는 somethink를 다음과 같이 만들어야했다 : eval (includeFile ("something.js")); 'includeFile'은'fileData' 값을 반환합니다 (fileData를 반환). – MrHIDEn

관련 문제