我正在嘗試做兩件事1.我需要在後臺打開一個新選項卡而不給它焦點,2.我需要能夠使用JavaScript寫入該頁面。 (我只關心它的工作在Chrome)如何使用javascript寫入在後臺打開的新選項卡
現在,如果我用這個代碼....
var handle = window.open("text/html", '_blank');
handle.document.write(reportPath);
handle.document.title = "Export Report";
我可以打開一個新的,寫微博,然而,該窗口獲取你的臉猛,我不希望發生這種情況,因爲它嚴重干擾了我的用戶的工作流程(我想把重點放在前一個窗口上)。
不過,我可以使用此代碼....
var a = document.createElement("a");
a.href = "about:blank";
a.target='_blank'
var evt = document.createEvent("MouseEvents");
//the tenth parameter of initMouseEvent sets ctrl key
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(evt);
其中精美的作品(它會打開新的標籤頁在後臺),但是,我無法寫入已打開的新窗口因爲我無法獲得新窗口的句柄。
有人可以告訴我如何使用第一種方法來打開該窗口而不關注焦點,或告訴我如何使用第二個窗口,但以某種方式獲得該窗口的句柄,以便我可以寫入它。
正如我之前說過的,我只需要此代碼爲Chrome工作,它是我公司的Web應用程序,每個人都使用Chrome,所以我不在乎它是否適用於其他瀏覽器。
那麼,既然你定義了'var handle',我會假設這將是第二個窗口的句柄?也許你可以打開新窗口,將所有數據寫入它,然後隱藏它? –
公平警告:您已經說過,使用'dispatchEvent'的第二個codeblock適合您,在後臺打開新的選項卡。它不適合我在Linux上使用Chrome 23.0.1271.95,它會在前臺打開它:http://jsbin.com/eholeb/1 –
我使用Chrome 24.0.1312.35 beta-m(windows 7 64位)它工作的很好,我辦公室的其他人使用Chrome 22.0.1229.79米,它對他們來說也很完美,也許是因爲你使用的是Linux? :-P – Jared