簡體   English   中英

我怎樣才能將console.log轉到父窗口?

[英]How can I console.log to parent window?

我有一個基本上刷新表的函數,它工作正常,但有些JS函數沒有運行。 調試我試圖在彈出窗口和它的父窗口之間傳遞數據。 目前我有這個功能:

$.fn.runFncs = function(isParent)
{
    if (isParent == 1) {
        window.opener.$.fn.compareDates();
        window.opener.$.fn.addStatusIcon();
        window.opener.$.fn.iconTooltips(1);
        window.opener.$.fn.iconTooltips(2);
        window.opener.console.log('test');
    } else {
        $.fn.compareDates();
        $.fn.addStatusIcon();
        $.fn.iconTooltips(1);
        $.fn.iconTooltips(2);
    }
};

這是在ajax成功的情況下運行的。

當我點擊ajax的按鈕時,我得到了我的成功消息等,但在我的父窗口中沒有console.log。 在使用window.opener之前我已經能夠訪問父窗口,它似乎運行正常,但這次不是出於某種原因。

我嘗試過研究,但要么我的查詢太具體,要么就是簡單的“什么是console.log”問題,所以有點卡在這里。

是否有另一種方法可以將console.log用於父窗口? 也許我不知道的文件功能?

謝謝! :)

您無法直接從一個窗口/選項卡訪問其他人的控制台對象,但您可以將消息從一個窗口發送到另一個窗口。 父窗口將獲取該消息,然后它將在控制台上寫入它。 有關詳細信息,請參閱此問答

function log(message){
    console.log(message);
}

將該函數放在父窗口中並像這樣調用它。 您基本上需要提供可以訪問的包裝函數

window.opener.log("Hi");

我最近(2018年8月)試用了Firefox,Chrome和Opera以及IE11, window.opener.console.log在所有這些中都運行得很好。 所以我認為問題出在代碼中的其他地方。

您甚至可以在父窗口中執行child.console = console並保留console.log ,但大多數瀏覽器會在頁面加載之間清除該變量,並且在創建文檔之后無法再次設置它,但在腳本被執行。 如果可以編輯,可以將window.console = window.opener.console添加到子頁面的頭部。 那應該也可以做到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM