📄 floating_window_with_tabs.js
字号:
for(var no=0;no<subDivs.length;no++){
if(subDivs[no].className=='floatingWindowContent')subDivs[no].style.width = (width-4) + 'px';
if(subDivs[no].className=='floatingWindowContent' && height)subDivs[no].style.height = height + 'px';
}
}
function floatingWindowStopMove(e)
{
if(floatingWindowMoveCounter>=0){
floatingWindowMoveCounter = -1;
if(activeFloatingWindow)Set_Cookie(activeFloatingWindow.id,activeFloatingWindow.style.left.replace('px','') + '_' + activeFloatingWindow.style.top.replace('px',''),100);
}
if(floatingWindowResizeCounter>=0){
floatingWindowResizeCounter = -1;
Set_Cookie('floating_window_size' + activeFloatingWindow.id.replace(/[^\d]/g,''),activeFloatingWindow.style.width.replace('px','') + '_' + activeFloatingWindowContent.style.height.replace('px',''),100);
}
}
function addMovingBar(inputObj,noMove)
{
var div = document.createElement('DIV');
div.className='floatingWindow_moveBar';
div.style.zIndex = 1000;
div.style.position = 'relative';
div.innerHTML = '<span></span>';
if(!noMove)div.onmousedown = initFloatingWindowMove;
inputObj.appendChild(div);
}
function addTabs(inputObj,tabs,noCloseButton,noMinimizeButton)
{
var div = document.createElement('DIV');
div.className='floatingWindow_topRow';
div.style.zIndex = 1000;
div.style.position = 'relative';
floatingWindowMinimumWidth[inputObj.id] = 0;
inputObj.appendChild(div);
floatingWindowTabDivs[inputObj.id] = div;
var currentWidth = 0;
var activeTabIndexCookie = Get_Cookie('floating_window_activeTab' + inputObj.id.replace(/[^\d]/g,''));
if(!activeTabIndexCookie)activeTabIndexCookie=0;
for(var no=0;no<tabs.length;no++){
var tabDiv = document.createElement('DIV');
tabDiv.onselectstart = cancelWindowEvent;
tabDiv.ondragstart = cancelWindowEvent;
if(no==activeTabIndexCookie){
suffix = 'active';
color_picker_active_tab = this;
}else suffix = 'inactive';
tabDiv.id = 'floatingWindowTab' + no;
tabDiv.onclick = showHideWindowTab;
div.appendChild(tabDiv);
if(no==activeTabIndexCookie){
tabDiv.style.zIndex = 50;
var tmpDiv = tabDiv;
while(tmpDiv.previousSibling){
var tmpCounter = 10;
tmpDiv = tmpDiv.previousSibling;
if(tmpDiv.tagName=='DIV'){
tmpDiv.style.zIndex = tmpCounter;
tmpCounter--;
}
}
}else tabDiv.style.zIndex = 1 + (tabs.length-no);
tabDiv.style.left = currentWidth + 'px';
tabDiv.style.position = 'absolute';
tabDiv.className='floatingWindowTab_' + suffix;
var tabSpan = document.createElement('SPAN');
tabSpan.innerHTML = tabs[no];
tabDiv.appendChild(tabSpan);
var tabImg = document.createElement('IMG');
tabImg.src = tabImagePrefix + suffix + ".gif";
tabDiv.appendChild(tabImg);
if(navigatorVersion<6 && MSIE){ /* Lower IE version fix */
tabSpan.style.position = 'relative';
tabImg.style.position = 'relative';
tabImg.style.left = '-3px';
tabDiv.style.cursor = 'hand';
}
currentWidth = currentWidth + tabSpan.clientWidth + 22 - 11;
if(navigator.userAgent.indexOf('Opera')>=0)currentWidth = currentWidth + 22;
floatingWindowMinimumWidth[inputObj.id] = floatingWindowMinimumWidth[inputObj.id] + tabSpan.offsetWidth + 22 - 11;
if(navigator.userAgent.indexOf('Opera')>=0){
currentWidth = currentWidth - 22;
floatingWindowMinimumWidth[inputObj.id] = floatingWindowMinimumWidth[inputObj.id] - 22;
}
}
floatingWindowMinimumWidth[inputObj.id] = floatingWindowMinimumWidth[inputObj.id] + 14;
if(!noCloseButton){
floatingWindowMinimumWidth[inputObj.id]+=18;
var closeButton = document.createElement('DIV');
closeButton.className='floatingWindowCloseButton';
closeButton.innerHTML = 'x';
closeButton.onclick = closeFloatingWindow;
closeButton.onmouseover = toggleCloseButton;
closeButton.style.top = '1px';
closeButton.onmouseout = toggleOffCloseButton;
div.appendChild(closeButton);
if(navigatorVersion<6 && MSIE){
closeButton.style.top = '1px';
}
}
if(!noMinimizeButton){
floatingWindowMinimumWidth[inputObj.id]+=18;
var minimizeButton = document.createElement('DIV');
minimizeButton.className='floatingWindowCloseButton';
minimizeButton.setAttribute('action','minimize');
minimizeButton.action = 'minimize';
minimizeButton.id = 'minimize_' + inputObj.id;
minimizeButton.innerHTML = '<span style="position:relative">_</span>';
minimizeButton.style.overflow = 'hidden';
minimizeButton.onclick = minimizeFloatingWindow;
minimizeButton.onmousedown = bringFloatingWindowToFront;
minimizeButton.onmouseover = toggleCloseButton;
minimizeButton.onmouseout = toggleOffCloseButton;
div.appendChild(minimizeButton);
minimizeButton.style.top = '1px';
if(!noCloseButton)minimizeButton.style.right = '18px';
}
}
function createStatusBar(inputObj,noResize)
{
var div = document.createElement('DIV');
div.style.position = 'relative';
div.className='floatingWindow_statusBar';
var innerSpan = document.createElement('SPAN');
innerSpan.id = 'floatingWindow_statusBarTxt';
div.appendChild(innerSpan);
inputObj.appendChild(div);
if(noResize){
return;
}
var img = document.createElement('IMG');
img.src = 'images/floating_window_resize.gif';
img.onmousedown = initFloatingWindowResize;
img.ondragstart = cancelWindowEvent;
div.appendChild(img);
}
var contentDivs = new Array();
var countWindows = 0;
function bringFloatingWindowToFront(e,inputObj)
{
if(floatingWindowMaxZIndex>currentZIndex)currentZIndex = floatingWindowMaxZIndex/1 + 1;
if(!inputObj)inputObj = this;
activeFloatingWindow = inputObj;
activeFloatingWindow.style.zIndex = currentZIndex+1;
var numericID = activeFloatingWindow.id.replace(/[^\d]/g,'');
var subDivs = new Array();
if(floatingWindowTabDivs[activeFloatingWindow.id])subDivs = floatingWindowTabDivs[activeFloatingWindow.id].getElementsByTagName('DIV');
for(var no=0;no<subDivs.length;no++){
if(subDivs[no].className=='floatingWindowTab_active'){
activeFloatingWindowContent = contentDivs[numericID][no];
break;
}
}
activeFloatingWindowStatusDiv = false;
activeFloatingWindowTabDiv = false;
var divs = activeFloatingWindow.getElementsByTagName('DIV');
for(var no=0;no<divs.length;no++){
if(divs[no].className=='floatingWindow_statusBar')activeFloatingWindowStatusDiv = divs[no];
if(divs[no].className=='floatingWindow_topRow')activeFloatingWindowTabDiv = divs[no];
if(divs[no].className=='floatingWindow_moveBar')activeFloatingWindowMoveBar = divs[no];
}
Set_Cookie('floating_window_zIndex' + numericID,currentZIndex,100);
currentZIndex++;
}
function initFloatingWindowWithTabs(windowID,tabs,windowHeight,windowWidth,leftPos,topPos,noScrollbars,noResize,noStatusBar,noCloseButton,noMinimizeButton,noMove)
{
contentDivs[countWindows] = new Array();
var el = document.getElementById(windowID);
el.id = 'dhtmlgoodies_floating_window' + countWindows;
el.style.overflow = 'hidden';
el.className = 'dhtmlgoodies_floatingWindow';
el.onmousedown = bringFloatingWindowToFront;
var cookieValue = Get_Cookie(el.id) + '';
if(cookieValue.length>0 && cookieValue!='null'){
var cookieItems = cookieValue.split('_');
leftPos = cookieItems[0];
topPos = cookieItems[1];
}
try{
el.style.left = leftPos + 'px';
el.style.top = topPos + 'px';
}catch(e){
}
el.style.zIndex = currentZIndex;
var contentDiv = el.getElementsByTagName('DIV')[0];
contentDivs[countWindows].push(contentDiv);
while(contentDiv.nextSibling){
contentDiv = contentDiv.nextSibling;
if(contentDiv.className=='floatingWindowContent'){
contentDivs[countWindows].push(contentDiv);
}
}
addMovingBar(el,noMove);
if(tabs)addTabs(el,tabs,noCloseButton,noMinimizeButton);else floatingWindowMinimumWidth[el.id] = 40;
var activeTabIndexCookie = Get_Cookie('floating_window_activeTab' + countWindows);
if(!activeTabIndexCookie)activeTabIndexCookie=0;
for(var no=0;no<contentDivs[countWindows].length;no++){
if(no==activeTabIndexCookie)contentDivs[countWindows][no].style.display='block'; else contentDivs[countWindows][no].style.display='none';
el.appendChild(contentDivs[countWindows][no]);
if(windowHeight)contentDivs[countWindows][no].style.height = (windowHeight - 46) + 'px';
if(noScrollbars){
contentDivs[countWindows][no].style.overflow='hidden';
}
if(navigator.userAgent.indexOf('Opera')>=0 && !noScrollbars){
contentDivs[countWindows][no].style.overflow = 'scroll';
}
contentDivs[countWindows][no].style.zIndex = 100;
contentDivs[countWindows][no].style.position = 'relative';
}
if(MSIE){
var iframe = document.createElement('<IFRAME frameborder="0" src="about:blank">');
iframe.style.position = 'absolute';
iframe.style.width = '1000px';
iframe.style.height = '1000px';
iframe.style.top = '0px';
iframe.style.left = '0px';
contentDivs[countWindows][0].parentNode.insertBefore(iframe,contentDivs[countWindows][0]);
}
if(!noStatusBar && !noResize)createStatusBar(el,noResize);
if(countWindows==0){
document.documentElement.onmousemove = floatingWindowMove;
document.documentElement.onmouseup = floatingWindowStopMove;
}
var cookieSize = Get_Cookie('floating_window_size' + el.id.replace(/[^\d]/g,''));
if(cookieSize){
var sizeArray = cookieSize.split('_');
initSetSize(el,sizeArray[0],sizeArray[1]);
}else{
var sizeArray = [windowWidth,windowHeight];
initSetSize(el,sizeArray[0],sizeArray[1]);
}
var cookieZIndex = Get_Cookie('floating_window_zIndex' + el.id.replace(/[^\d]/g,''));
if(cookieZIndex){
el.style.zIndex = cookieZIndex;
if(!floatingWindowMaxZIndex)floatingWindowMaxZIndex = 0;
floatingWindowMaxZIndex = Math.max(floatingWindowMaxZIndex,cookieZIndex/1 + 1);
}
el.onselectstart = cancelWindowEvent;
countWindows++;
currentZIndex++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -