开发者

Using JQuery to Access a New Window's DOM

开发者_StackOverflow社区I am creating a new window that will contain text that user will print. I would like to do something similar to this:

var new_win = window.open();
$(new_win.document).html("Test");


In this case you are trying to access a dom wich has no jQuery enhancement. You need to first load a jquery.js into this document. If done the syntax would be.

var popup = window.open('/some/url.html');
popup.document.$('body').html('test');

But be very careful, in multi document management and communication are many bugs and inconveniences between the many different browser versions and vendors.

It would really be better if you keep communication to a absolute minimum, and just load another complete html file into the popup.


In our MVC Web application, We need to open a new tab and present a demo from a product. For this purpose, We need To apply some limitation in demo mode and click a button to play a video. we did it like this:

DemoTab = window.open("someUrl/demo", "_blank");
if (DemoTab) {                                
    $(DemoTab.document).ready(function () {        
        $("#hideInDemo", DemoTab.document).removeClass('floatContainer');
        $("#hideInDemo", DemoTab.document).css('display', 'none');
        $("#play", DemoTab.document).trigger('click');
    }); 
}

it only worked on Chrome and Edge.

So we solved the problem by action controller whitch called to load the page. We just passed a parameter by ViewBag to view and on document ready we checked the parameter so then we knew that it called for demo. So we applied our limitations.


To open popup window and modify it's content you can use this code

var popup = window.open('/' + window.URL_PREFIX + 'print/', '_blank');

popup.onload = function() {
    $(popup.document.body).html('hello');
};
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜