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');
};
精彩评论