日期:2014-05-17  浏览次数:20589 次

关于window.createPopup的两个问题
由于IE6+SP1已经把full screen后在resizeTo的BUG给封了,因此似乎做完全无边框的页面只能用window.createPopup来建窗口了,因为是要脱离于原页面的,也只能用window.createPopup了.但window.createPopup有两个问题不知道如何解决 
问题一,如果在用window.createPopup建立的窗口中把自己hide掉,是hide不是close. 
  我想实现在鼠标离开这个页面的时候页面自动隐藏. 
问题二,使用 var oPage = window.createPopup; 
  var oBody = oPage.document.body; 
  cHtml = " <html> \n "; 
  cHtml += " <head> \n "; 
  cHtml += "............ "; 
  cHtml += " </head> \n "; 
  cHtml += " <body> \n "; 
  cHtml += "............ "; 
  cHtml += " </body> \n "; 
  cHtml += " </html> \n "; 
  oBody.innerHTML = cHtml; 
  oBody.show(........); 
  的方法建立窗口. 
  但似乎 ' <style type= "text/css "> '的内容加在cHtml的 <head> 部分不起作用,要使样式起作用,必须在 <body> 部分的标签里面使用style= " "这样的属性才起作用.那么这样一来,如何设置象a:link这样的伪类样式呢?

------解决方案--------------------
1、你可以指定POPUP里的body对象的 onmouseout 事件里隐藏。(不过你在这个事件里加上一个延迟处理,要判断一个是不是真的离开了)
2、你可以使用document.createElement("LINK") 导入样式表文件,也可以使用 document.createStyleSheet() 方式创建或者导入样式

POPUP你可以认为是已经存在<head><body>对象的框体,你只管往里面注入内容
------解决方案--------------------
抢分来了!

HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<script type="text/javascript">
<!--
//popup窗体 开始-------------------------------
var oPopup, oPopupBody, oPopTimer
function popInit(){
    if (window.document.all){
        oPopup = window.createPopup()
        oPopupBody = oPopup.document.body;
        oPopupBody.style.background="#000"
        oPopupBody.style.fontSize="12px"
        oPopupBody.style.textAlign="center" 
        oPopupBody.style.padding="2px 2px 0px 2px"     
        var s = oPopup.document.createStyleSheet();   
        s.addRule ('a:link','color:red;')
        s.addRule ('a:visted','color:red;')
        s.addRule ('a:hover','color:gold;')
        oPopupBody.attachEvent('onmouseout',hidePop)
        oPopupBody.attachEvent('onmouseover',clrPopTimer)
    }
}
function showPop(){        
    if (window.document.all){
        var xp =  200, yp     =  100, ww     =  180, wh     =  50, txt = '<div><a href="">sdfsdfsggggg</a></div>'
        oPopupBody.innerHTML = txt
        oPopup.show( xp, yp, ww, wh )                
        oPopupBody.innerHTML=txt
        oPopup.show(xp,yp,ww,wh)
    }
}
function hidePop(){
    if (window.document.all)
        if (oPopup.isOpen)
            oPopTimer = setTimeout("oPopup.hide()",1000)            
}
function clrPopTimer(){
    clearTimeout(oPopTimer)
}

//popup窗体 结束-------------------------------    
//-->
</script>
</head>

<body>
<script type="text/javascript">
<!--
popInit()
sho