2009-05-24 5 views
1

웹 페이지의 "친숙한"버전을 만드는 자바 스크립트 코드가 있습니다.하위 창을 저장하면 부모 창이 저장됩니다 (자바 스크립트)

child = window.open("","child");
child.document.write(htmlPage);

는 "htmlPage는"팝업 창에서

모든 디스플레이 완벽하게 등 헤더 이미지 참조의 다른 세트와 꺼낸 모든 자바 스크립트 참조가 페이지의 기본 HTML입니다 자바 스크립트가 실행되지 않습니다. "파일 -> 다른 이름으로 저장"을 클릭하면 저장된 파일은 상위 창과 모든 자바 스크립트 및 하위 창 추적이 없습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까? 자식 창만 저장하려고합니다.

감사합니다, -Kraryal

답변

2

당신은 원래의 URL의 내용을 저장 할 페이지를 저장할 때 (예를 들어, 당신은 새로운 사본을 다운로드 한 것처럼)

당신이 "정화"버전을 원하는 경우

, 당신을 서버에서 해당 버전을 생성하고 해당 URL을 첫 번째 매개 변수로 사용하여 팝업을 열어야합니다. 윈도우에 대한

0

아아, 그것은 내가 천국 보인다 내 질문에 댓글을 달 수있는 평판이 충분하지 않으므로 여기에이 내용을 추가하겠습니다.

이 자바 스크립트는 Internet Explorer와 Safari 모두에 배포됩니다. 호스팅 응용 프로그램은 항상 로컬 파일 시스템에 액세스하지 못합니다.

사용자는 작업중인 페이지를 마크 업하고 나중에 인쇄하거나 이메일로 보내기 위해 저장할 수 있습니다. 실제로 파일 일 수 있도록 단일 파일 아카이브로 저장하도록 알려줍니다. 저장 대화 상자에서이를 수행 할 수 있으며, 사용자는 액세스 권한이있는 어딘가에 파일을 저장할 수 있습니다. 그래서 그것이 우리가 사용한 이유입니다.

자바 스크립트에서 로컬 디렉토리로 새로운 html을 작성하는 것이 간단한 방법 인 것처럼 보이지만 항상 그렇게 할 수는 없습니다. 다른 아이디어? 지금까지 도움을 주셔서 감사합니다.

+0

fyi - 자신의 질문을 수정할 수 있어야합니다 ... – garrow

+0

고마워요. 그날 브라우저가 바보 같았습니다. – kraryal

5

비슷한 상황 이었지만 (모두 포기할 의사가 없었습니다). 사용자가 텍스트 파일 (쉼표로 구분 된 값, 내 경우)로 다운로드하게하려는 Javascript를 사용하여 친숙한 버전의 웹 페이지를 구성하고 있습니다. 나는 data: URI가 여기에 도움이 될 수 있다고 생각한다.

//construct the csvOutput in Javascript first 
var popup = window.open("data:application/octet-stream," + encodeURIComponent(csvOutput), "child"); 
//no need to document.write() anything in the child window 

파이어 폭스,이 단지 그들이 파일을 저장할 경우 사용자에게 요청하고 .part 파일로 저장, 심지어 창을 팝업하지 않습니다. 정확히 이상적은 아니지만 적어도 불필요한 창을 열지 않고도 파일을 저장합니다. 의 cruft에의하지 않고

//construct the csvOutput in Javascript first 
var popup = window.open("data:text/plain;charset=utf-8," + encodeURIComponent(csvOutput), "child"); 

파이어 폭스,이 팝업이 새 창을 열 않지만, 다음은 ASCII 텍스트로 기본적으로 저장되는 :

또한, 우리는 텍스트/일반 MIME 유형을 사용할 수 있습니다 부모 창 또는 모든 줄 바꿈 이것은 아마도 내가 사용하게 될 것입니다.

IE에서 작동하지 않는 것처럼 보입니다.IE 8은 data: URI를 지원하는 유일한 버전이며 사용할 수있는 곳은 series of restrictions입니다. IE의 경우 execCommand을 볼 수 있습니다.

덕분에 tek-tip threadWikipedia article on the data URI scheme 덕분입니다.

+0

이것은 내가 원하는 것을하지는 않지만 그럼에도 불구하고 좋은 발견이다. (이미지와 HTML을 하나의 아카이브 파일로 저장하고 싶습니다.) execCommand도 매우 유용합니다. – kraryal

관련 문제