2011-10-25 1 views
3

나는 웹 응용 프로그램의 개발자입니다.Google 크롬에서 자바 스크립트 및 AJAX로 생성 된 콘텐츠를 인쇄하지 않습니다.

크롬은 내 Javascript 및 AJAX에서 생성 된 웹 페이지를 올바르게 표시하지만, 기본 기능을 통해 인쇄하려고하면 빈 페이지가 표시됩니다.

인쇄는 다른 브라우저에서 잘 작동합니다.

저는 Chrome에서 서버 측 생성 페이지를 인쇄 해 보았지만 정상적으로 인쇄됩니다.

내 웹 응용 프로그램의 웹 페이지에서 어떤 문제가 있습니까? 문제는 그 페이지가 Javascript와 AJAX에 의해 동적으로 생성된다는 것입니다.
크롬을 사용하여 해당 페이지를 올바르게 저장할 수 없다는 사실을 알았 기 때문에 (모든 동적 HTML은 표시되지 않음) 나는 말하고 있습니다.

Google 크롬 13.0.782.112입니다.
어떻게이 문제를 디버그하고 해결할 수 있습니까? 해결 방법이 있습니까? Google 크롬으로 동적으로 생성 된 콘텐츠를 관리하는 사람이 있습니까?

이 문제는 나를 미치게합니다!

PS : 나는했습니다 ... 크롬 14.0.835.202로 업그레이드했지만 문제가 여전히 존재

+0

단순히 한

$("html").html $("html").html() 

같은 것을 완벽하게 일 [바이올린] (http://jsfiddle.net/A8Ypg/) 그리고 그것은 나를 위해 잘 작동합니다. 다른 코드를 사용하고 있습니까? –

+0

우리가 볼 수있는 코드를 게시 할 수 있습니까? – user2890

답변

2

: 내 사용자 중 일부는

UPDATE :-(사파리에서 같은 문제를보고하고있다 크롬에서는 아니지만 정확히 같은 문제가있었습니다 (Chrome에서는 실제로 테스트하지는 않았지만). 특정 브라우저에서는 (어떤 프로그램이 오프라인인지 기억이 나지 않지만 IE 또는 FF 중 하나임) 기억 장치에 추가 된 모든 콘텐츠 자바 스크립트로 DOM을 인쇄하지 않습니다. 실제로 인쇄되는 것은 브라우저에 제공된 원래 문서입니다.

나는 성공적으로 다음과 같은 자바 스크립트 기능을 사용하여이 문제를 해결 :

function docw() 
{ 
    var doct = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" 
    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"; 
    document.write(doct + document.getElementsByTagName('html')[0].innerHTML); 
} 

자바 스크립트 페이지 조작이 완료되면이 호출된다. 실제로 전체 DOM을 읽고 나서 document.write을 사용하여 전체 문서를 다시 그 자체로 다시 씁니다. 이것은 이제 IE와 FireFox 모두에서 특정 프로젝트에 대한 인쇄를 가능하게합니다. 비록 그 중 하나가 이미 처음부터 작동 했었고 다른 하나는 메모리에서 기억할 수 없었습니다. 내가 지금 시험하기 위해 끌어낼 수있는 프로젝트는 아닙니다.) 이 문제가 Chrome의 문제를 해결할 수 있을지는 모르겠지만 시도해 볼 가치가 있습니다.

편집 정말 죄송합니다. 방금 이전 주석을 다시 읽었으므로이 솔루션은 인쇄와 아무 관련이 없습니다. 실제로 에 저장할 때 원래 제공된 문서 만 저장되는 문제를 해결했습니다. 그러나 그것은, 그것이 가치가 있는지 궁금해한다.

+0

당신은 최고입니다, 트레버! 굉장! 얼마나 행복합니까! 모두들 제발이 답변을 투표하십시오 : 제 질문은 매우 모호했고 어떤 코드도 보여주지 않았지만 그의 스 니펫은 완전히 자리했습니다! – dan

+1

하, 가끔씩 장시간 촬영할 가치가 있음을 보여줍니다! 다행히 도왔다! – Trevor

2

이것은 동적으로 생성 된 HTML 자체를 보거나 저장하는 것과 관련된 문제와 관련하여 도움이됩니다. 나는 다음 북마크 릿을 만들었다.

javascript:(function(){document.write('<pre>'+(document.getElementsByTagName('html')[0].innerHTML.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'))+'</pre>')})() 

나는 이것을 실행하고/사본 '모두 선택'다음 (리눅스) 파일로 클립 보드에 많은 양의 데이터를 직접 'XCLIP -out'않습니다.

2

트레버의 대답은 완전히 jQuery로 me-를 위해 일한 난 그냥 테스트를했다

관련 문제