Как да отпечатате някои елементи в gwt

Искам да отпечатам един панел от страница в GWT.

Някой обаче каза, че трябва да използвате iframe, защото има метод за печат.

Опитах този код, но не работи:

     HTML html=new HTML("<iframe id="myframe"></iframe>") ;....
    searchButton.setWidth("80px");
            searchButton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    MyNative.printIframeContent("myframe", "onlineMap");

                }
            });
    map = new SimplePanel();
    map.getElement().setId("onlineMap");
    map.add(mapView.getMapWidget());

mapView .е екземпляр на клас, който връща GWT MapWidget и по този начин искам да добавя GWT карта към iframe, след което да използвам възможността за печат на iframe, за да отпечатам карта на Google

MyNative е клас, който използва GWT JSNI за извикване на javascript функцията printPage

function printPage(idMap,idFrame) {
    var myElement = document.getElementById(idMap);
    var iframe = document.getElementById(idFrame);
    var body = iframe.getElementsByTagName('body');
    body.innerHTML = myElement;
    iframe.contentWindow.print();
}

но браузърът не може да зареди тялото на iframe.


person user1738224    schedule 25.08.2014    source източник
comment
Трябва ли да е като HTML html=new HTML("<iframe id="+myframe+"></iframe>") ; i означава добавяне на конкатинация на низ със символ +   -  person Rudra Sisodia    schedule 25.08.2014
comment
опитайте се да го кажете така "<iframe id=myframe></iframe>"   -  person Rudra Sisodia    schedule 25.08.2014
comment
когато коментирам този ред: body.innerHTML = myElement;browse може да го зареди   -  person user1738224    schedule 25.08.2014
comment
какво е idMap?? моля, покажете обаждането на printpage!!!   -  person Rudra Sisodia    schedule 25.08.2014


Отговори (1)


Можете да опитате това:

String html = myPanel.getElement().getInnerHTML();
print(html);


public static final native void print(String html) /*-{

    top.consoleRef=$wnd.open('','_blank', "");
    top.consoleRef.document.write(html);
    top.consoleRef.print();
    top.consoleRef.document.close()

}-*/;
person Andrei Volgin    schedule 25.08.2014
comment
Благодаря много, работи, но отпечатва само карта, а не нещо в картата, имам предвид, че имам някакъв маркер, който показва пътя на обект, но не отпечатва този път. - person user1738224; 25.08.2014