[英]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.