2

次のコードを使用して新しいウィンドウを開こうとしています。

$("#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;
});

これらの両方とも機能しませんでした。

4

3 に答える 3

3
$("#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 メソッドはドキュメントではなくウィンドウで機能するため、これを試してください。

于 2013-07-30T08:32:09.857 に答える
2

ready ではなく load にバインドしてみてください:

$("#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

于 2013-07-30T07:40:47.703 に答える