2017-01-06 1 views
3

내 debug.html 페이지이있어 :자바 스크립트 소스 태그없이 동적으로 스크립트 태그를 만드는 방법은 무엇입니까?

window.onload = function() { 
    var dataFromLink = parseData(location.search.substring(5)); 
    callScript(dataFromLink); 
}; 

</script> 

을 그리고 내 debugBoot.js이있어 : (5) 외모는 location.search.substring에서

function parseData(dataFromLink){ 
    dataFromLink=dataFromLink.replace(/%20/g, ' '); 
    dataFromLink=dataFromLink.replace(/%22/g, '"'); 
    dataFromLink=dataFromLink.replace(/%27/g, '\''); 
    dataFromLink=dataFromLink.replace(/%3C/g, '<'); 
    dataFromLink=dataFromLink.replace(/%3E/g, '>'); 
    return dataFromLink; 
} 

function callScript(param1) { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.innerHTML = param1; 
    script.id = "debugScript"; 
    script.src = "debugScript.js"; 
    document.getElementsByTagName("head")[0].appendChild(script); 
    return false; 
} 

그리고 내 데이터를 이 페이지를로드 할 때하지만 직원과 나는 parseData 함수에서 없애 :

그래서, 나는 폴더 웹 콘텐츠를 가지고 웹 응용 프로그램을 가지고, 내 파일 debugScript.js

내 코드는 거기에서 다음 줄에 파일을 읽고 있습니다 :

script.src = "debugScript.js"; 

및 작품 것으로는 하지만 문제가 있습니다 ...

이 코드가있는 페이지로 이동하는 링크는 데이터를 호출하는 곳의 파일에 dataFromLink를 저장하는 함수를 트리거합니다. 그건 잘 작동하지만 문제가 있습니다. 항상 함수가 데이터를 저장할 때 eclpise 파일을 새로 고침하여 스크립트가 읽을 수 있도록해야합니다. 파일을 새로 고치지 않으면 이전 버전이됩니다.

나는 로컬 디스크에 저장하려고하지만 그때 나는 내가 어떤 파일을 읽을 수없는 스크립트를 만들 든 필요하지만를 삽입하려면 브라우저에서

Not allowed to load local resource: file://... 

길고도 짧은 이야기 오류가 빈 스크립트를 페이지에 넣은 다음 dataFromLink의 내용을 쓰십시오.

가능합니까?

또는 어딘가에 임시 파일을 만들 수는 있지만 마녀에서 서버를 읽을 수는 없습니까?

내가 어떤 솔루션 :
+0

문제 나 목표를 이해하는 것이 조금 어렵습니다 ... 임시 JavaScript 파일을 만들고 실행 하시겠습니까? 자바 스크립트 파일을 저장하고 Eclipse에로드 하시겠습니까? 자바 스크립트 파일을 동적으로 생성 하시겠습니까? 나는 당신이 원하는 것이 정확히 무엇인지 확신하지 못합니다. 어쨌든 [Blob API] (https://developer.mozilla.org/en-US/docs/Web/API/Blob)를 사용하여 임시 파일을 만들 수 있습니다. – Xufox

+0

나는 두 페이지를 가지고 있는데, 텍스트 영역을 가지고있다. 한 번 완료되면 자바 스크립트 코드를 작성한다. 두 번째 페이지로 가서 clienside를 디버깅한다. 텍스트 영역에서 텍스트를 가져올 필요가있다. 내 페이지에 스크립트로, 그러므로, 나는 첫 번째 스크립트를 만들 필요가 있지만, src 파일이 아니라 텍스트로 보낸 ... 나는 내가 생각을 가지고 희망 ... – newbie

답변

0

대답을 잊어 버렸 :

확인을 받아 들일

는, 내가 거기 있던 문제는, 내가 원하는 방식으로 해결 할 수 없습니다.

내가 마지막으로 수행 한 작업은 텍스트 영역이있는 페이지 1의 소스를 사용하고 javascript 파일을 만들었습니다.이 파일의 이름을 두 번째 페이지의 매개 변수로 보내면 마녀가 파일을 열고 다음과 같이 엽니 다.

<script id=loadScript> 
    window.onload = function() {  
     callScript(fileName, userId); 
    }; 
</script> 


function callScript(fileName, userId) { 
    var script = document.createElement("script"); 
    script.type = "text/plain"; 
    script.id = "debugScript"; 
    script.src = ".../getSource/" + userId + "/" + fileName; 
    document.getElementsByTagName("head")[0].appendChild(script); 
} 
관련 문제