我正在尝试使用以下代码打开一个新窗口。
$("#printBtn").on("click", function () {
var w = window.open(this.href, "myWindowName", "width=800, height=600");
$(w.document.body).children(".top-fixed-nav").remove();
return false;
});
我遇到的问题是,新窗口确实打开了所需的输出,但我使用$(w.document.body).children(".top-fixed-nav").remove();
的行不起作用,即.top-fixed-nav
没有删除。我已经尝试将其绑定到ready
事件以及
$("#printBtn").on("click", function () {
var w = window.open(this.href, "myWindowName", "width=800, height=600");
$(w).ready(function(){
$(w.document.body).children(".top-fixed-nav").remove();
});
return false;
});
但这也没用。谁能告诉我,我做错了什么?
更新
尝试过这个:
$("#printBtn").on("click", function () {
var w = window.open(this.href, "myWindowName", "width=800, height=600");
// $(w.document).ready(function(){
// and $(w.document).load(function(){
$(w.document.body).children(".top-fixed-nav").remove();
});
return false;
});
这两种方法都不起作用。
$("#printBtn").on("click", function () {
var w = window.open(this.href, "myWindowName", "width=800, height=600");
$(w).on("load", function(){
$(w.document.body).children(".top-fixed-nav").remove();
});
return false;
});
试试这个方法,因为onload方法适用于窗口而不是文档。
尝试绑定以加载而不是就绪:
$("#printBtn").on("click", function () {
var w = window.open(this.href, "myWindowName", "width=800, height=600");
$(w.document).on("load", function(){
$(w.document.body).children(".top-fixed-nav").remove();
});
return false;
});
经过一番摆弄,阿隆德得到了这个:
$("#printBtn").on("click", function () {
var w = window.open(this.href, "myWindowName", "width=800, height=600");
var callInterval = setInterval(childCall, 100);
function childCall(){
if (typeof w.jQuery !== "undefined") {
//w.jQuery(document.body).children(".top-fixed-nav").remove();
w.jQuery(".top-fixed-nav").remove();
if(typeof callInterval !== "undefined")
window.clearInterval(callInterval);
}
};
return false;
});
试试看,让我们知道它是否有效:D
你可以试试这个:
var w = window.open(this.href, "myWindowName", "width=800, height=600");
w.document.$('body').children(".top-fixed-nav").remove();
或者:
$(".top-fixed-nav", w.document.body).remove();
注意:您可能需要引入延迟才能加载窗口。
setTimeout('$(".top-fixed-nav", w.document.body).remove()', 5000);