我的電腦連接了多個顯示器。我正在研究一個在瀏覽器中的表格中顯示數據的Web應用程序。當用戶點擊表格的一行時,會顯示一個窗口,其中包含有關所選行的詳細信息。如果用戶點擊不同的行,將打開一個新窗口。你可以控制Javascript創建的窗口顯示在哪個顯示上嗎?
我有兩個要求,我需要做的工作:
窗戶不應該堆起來一個在另一個之上,他們應該級聯。我有適用於Firefox的代碼,但IE和Chrome只是在同一個地方打開每個窗口,以便堆疊起來。如果我跟蹤打開的窗口數量,我可以打開一個級聯機制,但有沒有更好的方法?
如果機器有多個顯示器,如果帶有表格的窗口在一個屏幕上而另一個窗口上打開了詳細信息窗口,那就好了。在我完成的任何搜索中,我一直無法找到任何內容。有沒有這樣的代碼?
編輯:
對於@Neal:
Function newWin(mypage, myname, cascade) {
if (!cascade) cascade = false;
if (!myname)
myname = 'DETAILS';
var w = 820;
var h = 685;
var settings = 'height=' + h + ',';
settings += 'width=' + w + ',';
if (!cascade) {
if (screen.width) {
var winl = (screen.width - w)/2;
var wint = (screen.height - h)/2;
}
else {
winl = 0;
wint = 0;
}
if (winl < 0) winl = 0;
if (wint < 0) wint = 0;
settings += 'top=' + wint + ',';
settings += 'left=' + winl + ',';
}
settings += 'scrollbars=yes,resizable=yes,menubar=yes,location=yes';
gPopupWindow = window.open(mypage, myname, settings);
// fix for IE focus
// when from ajax loaded list
// see convoy dropdownlist item click
//gPopupWindow.focus();
setTimeout(function() { gPopupWindow.focus() }, 0);
}
通過傳遞正確的cascade
,Firefox允許操作系統打開它想要的窗口。但IE瀏覽器& Chrome始終將窗口放在相同的位置,但它在屏幕上的位置對於每個瀏覽器都不同。我希望IEChrome能夠像Firefox一樣行事,但瀏覽器的差異是生活中的事實。
正如我所說的,我可以通過調用該函數跟蹤已打開多少個窗口,並根據該數字計算新的左邊頂點座標&。不過,我寧願不要。
你能展示一些你試過的代碼嗎? – Neal