>

QQ邮箱的一个文件编辑器代码

- 编辑:乐百家599手机首页 -

QQ邮箱的一个文件编辑器代码

仿google adsense颜色接纳器代码
css代码

复制代码 代码如下:

edt_color_slt.js

要想见到实际效果,能够先声爱他美些性质跟艺术,不然是看不到,留心往下看有例子的。

复制代码 代码如下:

<!--菜单样式-->
<STYLE type=text/css>
.cMenu {
BORDER-RIGHT: #000000 1px solid;
BORDER-TOP: #000000 1px solid;
FONT-WEIGHT: normal;
FONT-SIZE: 14px;
VISIBILITY: hidden;
BORDER-LEFT: #000000 1px solid;
WIDTH: 150px;
CURSOR: default;
COLOR: #000000;
LINE-HEIGHT: 20px;
BORDER-BOTTOM: #000000 1px solid;
FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
POSITION: absolute;
BACKGROUND-COLOR: #eeeeff
}
.menuitems {
PADDING-RIGHT: 5px;
PADDING-LEFT: 5px
}
</STYLE>
<DIV class=cMenu id="contextMenu" onmouseover=highLightMenu() onmouseout=lowLightMenu()>
<DIV class=menuitems clickcall="alert('查看历史试行景况');">查看历史执行景况</DIV>
<DIV class=menuitems clickcall="alert('查看解说');">查看批注</DIV>
<DIV class=menuitems clickcall="alert('插入/修改讲明');">插入/修改批注</DIV>
<HR color=#aaaaaa size="0">
<DIV class=menuitems clickcall="alert('关于');">关于</DIV>
</DIV>
<SCRIPT type="text/javascript">
var contextMenu = document.getElementById("contextMenu");
function getObjectName()
{
return document.getElementById("cv.id").value;
}
function getRVContent()
{
var objName = getObjectName();
return eval("document.getElementById('RVContent" objName "');");
}
function overWriteRightClick()//重写弹出美食做法
{
var objName = getObjectName();
eval("oCV" objName ".rvMainWnd.displayContextMenu = displayContextMenu;");
}
function disableRightClick()
{
var objName = getObjectName();
eval("oCV" objName ".bCanUseCognosViewerContextMenu = false;");
}
/* 菜单相关函数 start*/
function displayContextMenu(evt) {
evt = (evt) ? evt : ((event) ? event : null);
hideContextMenu();
var rightedge = getRVContent().clientWidth - evt.clientX;
var bottomedge = getRVContent().clientHeight - evt.clientY;
if (rightedge < contextMenu.offsetWidth)
contextMenu.style.left = getRVContent().scrollLeft evt.clientX - contextMenu.offsetWidth - getRVContent().offsetLeft;
else
contextMenu.style.left = getRVContent().scrollLeft evt.clientX - getRVContent().offsetLeft;
if (bottomedge < contextMenu.offsetHeight)
contextMenu.style.top = getRVContent().scrollTop evt.clientY - contextMenu.offsetHeight - getRVContent().offsetTop;
else
contextMenu.style.top = getRVContent().scrollTop evt.clientY - getRVContent().offsetTop;
contextMenu.style.visibility = "visible";
return false;
}
function hideContextMenu() {
var object = event.srcElement;
contextMenu.style.visibility = "hidden";
if (object.className == "menuitems") {
eval(object.clickcall);
}
}
function highLightMenu() {
var object = event.srcElement;
if (object.className == "menuitems") {
object.style.backgroundColor = "highlight";
object.style.color = "white";
}
}
function lowLightMenu() {
var object = event.srcElement;
if (object.className == "menuitems") {
object.style.backgroundColor = "";
object.style.color = "black";
}
}
/*菜单相关函数 end*/
overWriteRightClick();
document.body.onclick = hideContextMenu;
</SCRIPT>

复制代码 代码如下:

复制代码 代码如下:

<style type="text/css"> 
BODY { 
    PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #02418a; PADDING-TOP: 0px; FONT-FAMILY: Arial 

FORM { 
    MARGIN: 0px 

INPUT { 
    MARGIN: 0px 

TABLE { 
    FONT-WEIGHT: normal; FONT-SIZE: 12px; LINE-HEIGHT: 170%; FONT-FAMILY: Arial 

A:link { 
    COLOR: #02418a; TEXT-DECORATION: none 

A:visited { 
    COLOR: #02418a; TEXT-DECORATION: none 

A:hover { 
    COLOR: #ff0000; TEXT-DECORATION: none 

.colorhover { 
    BORDER-RIGHT: blue 1px solid; BORDER-TOP: blue 1px solid; DISPLAY: block; MARGIN-LEFT: 4px; BORDER-LEFT: blue 1px solid; WIDTH: 20px; CURSOR: pointer; BORDER-BOTTOM: blue 1px solid; HEIGHT: 16px 

TABLE.palette { 
    BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; FONT-SIZE: 5px; BACKGROUND: #000000; BORDER-LEFT: #999999 1px solid; BORDER-BOTTOM: #999999 1px solid; BORDER-COLLAPSE: collapse 

TABLE.palette TD A { 
    DISPLAY: block; TEXT-DECORATION: none 

TABLE.palette TD A DIV { 
    WIDTH: 20px; HEIGHT: 20px 

TABLE.palette A { 
    BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid 

TABLE.palette A:hover { 
    BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; BORDER-LEFT: red 1px solid; CURSOR: pointer; BORDER-BOTTOM: red 1px solid 

</style> 

上边笔者来着介绍一下这段代码,前边的style和div紧若是概念菜单的有血有肉样式,个中援引样式为menuitems的div中有个clickcall属性,那性子格就是当点击此菜单项时调用的JS函数,能够将其改为团结的函数,小编这里只是轻便的调用了个alert。
getObjectName函数中有个cv.id的对象,此前也会有人问过那几个标题,“cv.id”是干吗用的?cognos报表在ReportStudio运转生成的靶子和用UENCOREL诉求生成的对象名称是不平等的,不过有规律可循,例如选用ReportStudio运营生成的报表中CognosViewer的靶子名称为oCV索罗德S,而用U瑞鹰L乞求生成的cognosViewer对象名称叫oCV_NS_,大家可以查阅四回运维结果的源文件来开始展览比较,就比较直观了。开采前缀都同样(oCV)只是前面“陆风X8S”和“_NS_”分歧,页面中许多对象都以用的此准则,而cv.id存款和储蓄到正是后缀。那样就足以拼凑出当前运维情势下的指标名了。
get奥迪Q3VContent函数获取的是id为库罗德VContent_NS_或大切诺基VContent科雷傲S的DIV对象,TiggoVContent是显示用ReportStudio定义报表的剧情,不带有CognosViewer工具栏和标题栏。
overWriteRightClick函数是将cognos右键调用的函数改为和煦定义的函数。
disableRightClick函数已经说过了,禁止使用右键菜单。
displayContextMenu、hideContextMenu、highLightMenu、lowLightMenu那多少个函数都以和菜单操作先关的,能够依附实际必要举行改建。
作用图如下:
图片 1

var _r = "";
var color_table=[
['000000','993300','333300','003300','003366','000080','333399','333333'],
['800000','FF6600','808000','008000','008080','0000FF','666699','808080'],
['FF0000','FF9900','99CC00','339966','33CCCC','3366FF','800080','999999'],
['FF00FF','FFCC00','FFFF00','00FF00','00FFFF','00CCFF','993366','C0C0C0'],
['FF99CC','FFCC99','FFFF99','CCFFCC','CCFFFF','99CCFF','CC99FF','FFFFFF']
];
function a1(obj)
{
    obj.style.border='1px solid #000080';
    obj.style.background='#FFEEC2';
}
function a2(obj)
{
    obj.style.border='1px solid #F6F6F6';
    obj.style.background='#F6F6F6';
}
function paintCell(color) 
{
    //_r  = '<TD BGCOLOR="'   color   '" style="height:12px;width:12px;">';
    _r  = '<TD style="padding:2px;background:#f6f6f6;border:1px solid #f6f6f6" onmouseover="a1(this)" onmouseout="a2(this)">';
    _r  = "<IMG src='/htmledition/images/spacer.gif' HEIGHT=12 WIDTH=12 style='border:1px solid #ccc;background:#"   color  "'></TD>";
}
function paintRow(color_row) //一行
{    
    _r  ='<TR>';
    for (var i = 0,l=color_row.length; i < l;  i) 
    {
        paintCell(color_row[i]);
    }
    _r  ='</TR>';
}
function paintTable(b) //表格
{
    _r  ='<TABLE CELLPADDING=0 CELLSPACING=0 style="border:5px solid #F6F6F6">';
    for (var i = 0,l=b.length; i < l;  i) {
        paintRow(b[i]);
    }
    _r  ='</TABLE>';
}
function paintCube() { //大边框    
    _r  = '<TABLE CELLPADDING=0 CELLSPACING=0 style="border:1px solid #888;"><TR>';
    _r  ='<TD BGCOLOR="#FFFFFF">';
    paintTable(color_table);
    _r  =('</TD>');
    _r  ='</TR></TR></TABLE>';
    return _r;
}

function ShowObjProperty(Obj)
{
var PropertyList='';
var PropertyCount=0;
for(i in Obj){
if(Obj.i !=null)
PropertyList=PropertyList i '属性:' Obj.i 'rn';
else
PropertyList=PropertyList i '方法rn';
}
alert(PropertyList);
}

仿google adsense颜色接纳器代码用到的大旨javascript代码

代码如下: !--菜单样式-- STYLE type=text/css .cMenu { BOCR-VDE奥迪Q7-RubiconIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-WEIGHT: normal; FONT-SIZE: 14px; VISI...

edt_main.js

复制代码 代码如下:

复制代码 代码如下:

复制代码 代码如下:

<script type="text/javascript">
// 创设贰个对象 myObject 以及五个属性 sitename, siteurl, sitecontent。
var myObject = new Object();
myObject.sitename = "布啦布啦";
myObject.siteurl = "blabla.cn";
myObject.sitecontent = "网页教程代码图库的国语站点";
//遍历对象的享有属性
for (prop in myObject)
{
document.write("属性 '" prop "' 为 " myObject[prop]);
document.write("
");
}
</script>

<script type="text/javascript"> 
//中易广告结盟先后 By www.zyiis.com QQ:381611116  
function showPicker(colorField,atElement){ 

//html输出
function output(dat,templ,b)
{
    for(var i=0;i<dat.length;i )
    {
      var d = dat[i];
      if(d.join)
      {  
        for(var j=0;j<d.length;j )
          if (templ[j*2 1])
            templ[j*2 1] = d[j];
        if(b) alert(templ.join(""));
        document.write(templ.join(""));
      }
      else document.write(d); 
    }
}
//B I U
var commFunc = " onmousedown=OnTBMouseDown(this) onmouseover=OnTBMouseOver(this) onmouseout=OnTBMouseOut(this) ";
var commAttr = ' style="position:absolute;clip:rect($rect$);margin:$margin$;" title="$title$" ';
var commHead = ' <img src="./images/editoricon.gif" '  commAttr;
var commHeadMask = ' <img src="./images/editoricon_mask.gif" '   commAttr;
var sComm = commHead   commFunc;

前几天网络Java Tang博客找到了贰个用来遍历JavaScript有些对象具备的质量名称和值的方式,这样想使用方法的时候特别的直观和福利。代码如下:

    var picker=document.getElementById("color_picker");     

//模块结构: 1.基础函数 2.接口定义 3.风云函数 4.HTML编辑框 5.全局事件绑定 6.全局变量注解
//基础函数
function GetDoc(win){ return (win?win:window).document;}
function S(i,win) {return GetDoc(win).getElementById(i);}
function F(sID,win) //sunny for firefox
{    
    if( sID == "" || sID == null ) return null;
    var frame = S(sID,win);
    if( !frame) return null;
    return frame.contentWindow?frame.contentWindow:(win?win:window).frames[sID];
}
function Disp(obj,flag) // 0 隐藏,1显示
{
    if(obj){ obj.style.display = flag?"":"none";}
}
function getPosX(e)
{
    var l=e.offsetLeft;
    while(e=e.offsetParent){
        l =e.offsetLeft;
    }
    return l;
}
function getPosY(e)
{
    var t=e.offsetTop;
    while(e=e.offsetParent){
        t =e.offsetTop;
    }
    return t;
}
String.prototype.trim = function(){
    return this.replace(/(^s*)|(s*$)/g, "");
};

复制代码 代码如下:

    var element=(atElement!=undefined) 
    ?atElement 
    :document.getElementById("zyad_style_color_" colorField);     
    //alert (getTopOffset(document.all.zyad_style_color_border)); 
    pickerField=colorField;     
    picker.style.top=getTopOffset(element);     
    picker.style.left=getLeftOffset(element) 90;     
    picker.style.display='block';     
    document.onmouseup=hidePicker;     

function ExecCmd(type, para){
    LoadPos();
    var f = F("HtmlEditor");
    var sAlert = "";
    if(!gIsIE)
    {
        switch(type){
            case "Cut":
                sAlert = "你的浏览器安全设置差别意编辑器自动施行剪切操作,请使用键盘快速键(Ctrl X)来实现";
                break;
            case "Copy":
                sAlert = "你的浏览器安全设置不一致意编辑器自动施行拷贝操作,请使用键盘快捷键(Ctrl C)来完结";
                break;
            case "Paste":
                sAlert = "你的浏览器安全设置不容许编辑器自动推行粘贴操作,请使用键盘快捷键(Ctrl V)来产生";
                break;
        }
    }
    if(sAlert != ""){
        alert(sAlert);
        return;
    }
    f.focus();
    var doc = f.document;
    if(!para)
    {
        gIsIE?doc.execCommand(type):doc.execCommand(type,false,false);
    }
    else
    {
        //为了图片插入后把火爆置于图片后边
        if (type == "InsertImage" && gIsIE) {
            var r = doc.selection.createRange();
        }

/*
* 用来遍历钦赐对象具备的个性名称和值
* obj 供给遍历的指标
* author: Jet Mah
*/
function allPrpos ( obj ) {
// 用来保存全部的天性名称和值
var props = "" ;
// 起初遍历
for ( var p in obj ){
// 方法
if ( typeof ( obj [ p ]) == " function " ){
obj [ p ]() ;
} else {
// p 为属性名称,obj[p]为对应属性的值
props = p " = " obj [ p ] " t " ;
}
}
// 最终呈现全体的质量
alert ( props ) ;
}

        doc.execCommand(type,false,para);

AJAX的JavaScript的反射机制,反射机制指的是先后在运转时能够得到自己的新闻。举个例子二个对象能够在运行时知道自身有如何方法和属性。 在JavaScript中运用for(…in…)语句达成反射,其语法如下:

function hidePicker(){ 

        //为了图片插入后把核心置于图片前边
        if (type == "InsertImage" && gIsIE) {
            r.move("character");
            r.select();
        }
    }
    f.focus();
}
function IsValidURL(str)
{
    return ( ( str.indexOf("://") > 1 ) || (str.indexOf(":\") > 1) );
}
function addHyperLink() {
    var f = F("HtmlEditor");
    //哈哈,终于找到相配mf噶方法
    var sel = f.document.selection != null ? f.document.selection.createRange().text : f.document.getSelection();
    if(sel.length>0)
    {
        var sU福睿斯L=window.prompt("请输入链接的靶子地址 (    e.g. ):", "http://");    
        if(sURL != null)
        {
            if( !IsValidURL(sURL))
            {
                sURL= "http://"   sURL;
            }
            F("HtmlEditor").document.execCommand("CreateLink",false,sURL);
        }
    }
    else
    {
        alert("请先接纳要连接的文字。");
    }
}
function addImage()
{
    var width="380px", height="150px";
    //modify by angusdu 2006-10-13
    //showModalDialog("uploadImg.htm", window, vfeature);
    var url = "uploadImg.htm";
    if(gIsIE)//IE   
    {
        window.showModalDialog(url,window,"dialogWidth:"   width   ";dialogHeight:"   height   ";center:Yes;help:off;status:no;scroll:no");   
    }   
    else 
    {
        window.open(url,window,"width=" width ",height=" height ",menubar=no,toolbar=no,location=no,scrollbars=no,status=no,modal=yes");   
    }  
}
function getIEVer(){
    var s = navigator.userAgent;
    if(s.indexOf("MSIE")>-1)
        return parseFloat(s.split(";")[1].replace("MSIE",""));
}
//接口定义
function editor()
{
 this.get_contents = GetContents;
 this.get_plaincontents = GetPlainContents;
 this.put_contents = PutContents;
 this.put_plaincontents = PutPlainContents;
 this.put_firstline = PutFirstLine;
}
function PutFirstLine(s) 
{
    return;
}
function GetContents() {
    if (curEditor == "source")
        return S("sourceEditor").value;
    return HtmlEditor.document.body.innerHTML;
}
function GetPlainContents() {
    //modify by angusdu 2006-10-11
    var bc = HtmlEditor.document.body;
    if (curEditor == "source")
        bc.innerHTML = S("sourceEditor").value;
    if (bc.innerText != null) {
        return bc.innerText;
    }
    else {
        return bc.textContent;
    }
}
function PutContents(contents)
{
    HtmlEditor.document.designMode="on";
    HtmlEditor.document.body.innerHTML = contents;
    SetDiv();
    S("sourceEditor").value = HtmlEditor.document.body.innerHTML;
}

for(var p in obj){
//语句
}

     
    var picker=document.getElementById("color_picker");     
    pickerField=null;     
    picker.style.display='none';     
    clicked=false;     

function PutPlainContents(contents)
{
    HtmlEditor.document.designMode="on";
    //modify by angusdu 2006-10-12
    var bc = HtmlEditor.document.body;
    if (bc.innerText != null) {
        bc.innerText = contents;
    }
    else {
        bc.textContent = contents;
    }
    S("sourceEditor").value = HtmlEditor.document.body.innerHTML;
}
//==========
//事件函数
function OnLoad() {
    try
    {
        if( !window.top.isFireFox)
        {
            F("HtmlEditor").document.designMode="on";
        }
        gLoaded = true;
        SetEditable();
        SetFrameClick();
        document.parentWindow.onclick=HideMenu();
    }catch(e){
    }
    setTimeout(SetColor,100); //--sunny 一上马就画颜色表,那么首先次就不会慢了
}
var editorTxtRange = null;
function SavePos() {
    if (document.selection) {
        editorTxtRange = F("HtmlEditor").document.selection.createRange();
    }
}
function LoadPos() {
    if (editorTxtRange) {
        editorTxtRange.select();
        editorTxtRange = null;
    }
}
// sunny : foreColor与backColor只是背负弹出ColorBoard,无需ExecCmd (此时ExecCmd会招致青灰)
function OnForeColor(e) {
    SavePos();
    HideMenu();
    var sColor = DispColorBrd(e);
    gSetColorType = "foreColor";
    if(gIsIE && gIEVer < 6)
    {
        ExecCmd(gSetColorType, sColor);
    }
    return ; 
}
function OnBackColor(e){
    SavePos();
    HideMenu();
    var sColor = DispColorBrd(e,1);
    gSetColorType = (gIsIE)?"backColor":"hilitecolor";
    if(gIsIE && gIEVer < 6)
    {
        ExecCmd(gSetColorType, sColor);
    }
    return 
}

在Ajax编制程序中,平常要能动态的改换分界面成分的样式,那能够由此对象的style属性来改造,例如要改成背景观为革命,可以那样写:
element.style.backgroundColor="#ff0000";


function getTopOffset(element){ 

function OnMo(e) {
    SavePos();    
    HideMenu();
    var sMo = DispMoBrd(e);
    if(gIsIE && gIEVer < 6 && sMo != null)
    {
        ExecCmd("InsertImage",sMo);
    }
    return ; 
}
function OnTBMouseOver(obj) {
    SetBorderMouse(obj,0);

function OnTBMouseDown(obj) {
    SetBorderMouse(obj,1);
}
function OnTBMouseOut(obj) {
    obj.style.border="none";
}
//HTML编辑框
function SetEditable(){
    var doc = window.frames["HtmlEditor"].document;
    doc.designMode="on";
    if(!gIsIE) {
        // angus:难怪,察看ff的文书档案发掘,如此表明: use false to use CSS, true to use HTML
        doc.execCommand("useCSS",false, false);
    }
}
function SetFrameClick(){
    var frm = window.frames["HtmlEditor"];
    var doc = frm.document;
    doc.onmousemove = function(){
        window.onblur();
    };
    doc.onclick = function(){
        //alert("aa")
        HideMenu();
    };
    doc.onkeydown = function()
    {
        if(frm.event.keyCode == 13 && frm.event.ctrlKey)
        {
            if(parent.DoCtrlEnter) parent.DoCtrlEnter();
        }
        //top.frames["jsFrame"].gIsEdited = true;
    };
}
function SetDiv()
{

基本上CSS里富有的习性在JavaScript中都能够选择:

    return (element==document.body) 
    ?0 
    :(element.offsetTop getTopOffset(element.offsetParent));     

    var loc = ""   window.parent.location;
    if(loc.indexOf("setting") > 0)
    {
        Disp(document.getElementById("add_pic_id"),0);
/*        removed by angusdu 2006-11-17
        if( !/^<DIV> </DIV>/.test(HtmlEditor.document.body.innerHTML))
        {
            HtmlEditor.document.body.innerHTML = HtmlEditor.document.body.innerHTML "<DIV> </DIV>";
        }
*/        S("HtmlEditor").style.height = gIsIE ? "182px" : "188px";
        S("sourceEditor").style.height = "184px";
        S("sourceEditor").style.width = "100%";
        S("htmlbtn").style.marginLeft = "393px";
    }
    else if (loc.indexOf("compose_card") > 0)
    {
        Disp(document.getElementById("add_pic_id"),0);
        S("HtmlEditor").style.height = "181px";
        S("sourceEditor").style.height = "183px";
        S("sourceEditor").style.width = "100%";
    }
    else if(loc.indexOf("compose") > 0)
    {
        if(GetSetting())
        {
            if( HtmlEditor.document.getElementById("QQMail_signature") )
            {
                HtmlEditor.document.getElementById("QQMail_signature").innerHTML = GetSetting().nSignature;
            }

复制代码 代码如下:


function getLeftOffset(element){ 

        }
    }

function setStyle(_style){
//获得要改动样式的分界面前遭遇象
var element=getElement();
element.style=_style;
}

    return (element==document.body) 
    ?0 
    :(element.offsetLeft getLeftOffset(element.offsetParent));     

    var doc = F("HtmlEditor").document;
    doc.designMode="on";

直白将全部style对象作为参数字传送递了步向:

    //    HtmlEditor.document.body.innerHTML="<DIV> </DIV>" HtmlEditor.document.body.innerHTML;
    if(doc.body)
    {
        doc.body.style.background = '#ffffff';
        doc.body.style.fontSize = '12px';
        doc.body.style.fontFamily = 'verdana';
        try
        {
            if( HtmlEditor.document.body.innerHTML.indexOf("<QQMAILSTATIONERY>") > -1)
            {
                doc.body.style.margin = '0.5% 0 0 0';
                doc.body.style.background = '#fff';
                doc.body.style.fontSize = '12px';
                return;
            } 

复制代码 代码如下:

function selectColor(colorValue){ 

        }catch(e)
        {}
        doc.body.style.margin = '4px';
    }
}
function SetColor(){
    var dvForeColor =S("dvForeColor");
    if(dvForeColor.getElementsByTagName("TABLE").length == 1){
        dvForeColor.innerHTML = paintCube();//  dvForeColor.innerHTML;
        //window.top.document.write(dvForeColor.innerHTML);
    }
}
function SetMo(){
    var dvMo =S("dvMo");
    dvMo.innerHTML = moCube();
}
//工具栏
//add by angusdu 2006-10-13
function showDialog(url, type, feature)   
{   
    if(gIsIE)//IE   
    {      
        return window.showModalDialog(url,type,feature);   
    }   
    else   
    {   
        //modelessDialog可以将modal换成dialog=yes   
        feature   ="width=300,height=200,menubar=no,toolbar=no,location=no,";   
        feature ="scrollbars=no,status=no,modal=yes";     
        window.open(url,type,feature);   
    }   

function DispColorBrd(e,isBC){
    if(gIEVer<6 && gIsIE){
        var arr = showModalDialog("color_slt.html", "", "font-family:Verdana; font-size:12; status:no; dialogWidth:17em; dialogHeight:14em");
        if (arr != null) return arr;
        return;
    }
    var dvForeColor =S("dvForeColor");
    SetColor();
    Disp(dvForeColor,1);
    dvForeColor.style.left = (isBC?bcL:fcL)   "px";
    dvForeColor.style.top = 33   "px";
    dvForeColor.focus();
    e.cancelBubble =true;
    return true;
}
function DispMoBrd(e) {
    if(gIEVer<6 && gIsIE){
        var arr = showModalDialog("mo_slt.html", "", "font-family:Verdana; font-size:12; status:no; dialogWidth:265px; dialogHeight:190px");
        if (arr != null) return arr;
        return;
    }
    var dvMo =S("dvMo");
    SetMo();
    Disp(dvMo, 1);
    dvMo.focus();
    e.cancelBubble =true;
    return true;
}
function CommCheck(obj,str,func)
{
    if (obj.id == str) {
        return true;
    }
    if(obj.parentNode) {
        return func(obj.parentNode);
    }
    return false;
}
function CommObjectCheck(obj, inObj)
{
    if (obj == inObj)
    {
        return true;
    }
    if(obj.parentNode) {
        return CommObjectCheck(obj.parentNode, inObj);
    }
    return false;
}
function HideMenu()
{
    var elementTable=["fontface","fontsize","dvForeColor","dvPortrait","divAlign","divList","dvMo"];
    for(var i=0;i<elementTable.length;i )
      Disp(S(elementTable[i]),0);
}
function IsInColorBrd(obj){
    return CommCheck(obj,"dvForeColor",IsInColorBrd);
}
function IsInFontFaceBrd(obj){
    return CommCheck(obj,"fontface",IsInFontFaceBrd);
}
function IsInFontSizeBrd(obj){
    return CommCheck(obj,"fontsize",IsInFontSizeBrd);
}
function IsInMoBrd(obj){
    return CommCheck(obj,"dvMo",IsInMoBrd);
}
function SetBorderMouse(obj,flag) // flag : 0 over 1 out 
{
    var d = [ 
     ["1px solid #fff","1px solid #fff","1px solid #F3F8FC","1px solid #F3F8FC"]
    ,["1px solid #ccc","1px solid #ccc","1px solid #F3F8FC","1px solid #ccc"]][flag];
    obj.style.borderTop=d[0];
    obj.style.borderRight=d[1];
    obj.style.borderBottom=d[2];
    obj.style.borderLeft=d[3];
}
function DispBoard(element,displayValue,nLeft) {
    if(gIEVer<=5.01 && gIsIE){
        if(element == "fontface"){
            var sReturnValue = showModalDialog("fontface_slt.html","", "font-family:Verdana; font-size:12; status:no; unadorned:yes; scroll:no; resizable:yes;dialogWidth:112px; dialogHeight:271px");;
            ExecCmd("fontname",sReturnValue);
        }else if(element == "fontsize"){
            var sReturnValue = showModalDialog("fontsize_slt.html","", "font-family:Verdana; font-size:12; status:no; unadorned:yes; scroll:no; resizable:yes;dialogWidth:130px; dialogHeight:250px");;
            ExecCmd("fontsize",sReturnValue);
        }
        return;
    }
    HideMenu();
    if ( typeof element == "string" )
        element = S(element);
    if (element == null) return;
    element.style.display = displayValue;
    SavePos();
    if(gIsIE){
        var e = event;
    }else{
        var e = ev;
    }
    var iX = e.clientX;
    var iY = e.clientY;
    Disp(element,1);
    element.style.left = ((null==nLeft)?(iX-30):nLeft)   "px";
    element.style.top = 33   "px";
    setTimeout("document.getElementById('" element.id "').focus();", 500);
    return true;
}
function SaveEvent(e){
    ev = e;
}
//qqmail扩充的函数

var style={
color:#ffffff,
backgroundColor:#ff0000,
borderWidth:2px
}

    elem("colorsample-" pickerField).style.backgroundColor='#' colorValue;     

function fSetReplyContent(){
    try{
        win.fSetComposeContent(win.gReplyContent);
        window.frames["HtmlEditor"].focus();
    }catch(exp){
        window.setTimeout('fSetReplyContent()',1000);
    }
    win.gReplyContent = null;
}

此刻能够那样调用函数:
setStyle(style);

     
    if(external){ 

function setContentType(ContentType)
{
    alert("setContentType");
    if(ContentType=="text")
    {
        PutContents(GetPlainContents());
    }
    window.parent.contenttype.value=ContentType;

要么直接写为:
setStyle({ color:#ffffff,backgroundColor:#ff0000,borderWidth:2px});

        elem("zyad_style_color_" pickerField).value=colorValue;         

}

这段代码看上去未有其余难题,但骨子里,在setStyle函数内部采纳参数_style为element.style赋值时,假使element原先已经有了迟早的体裁,比方曾经进行过:
element.style.height="20px";

    } 

function GetSetting()
{
    try
    {
        return window.top.GetApp().setting;
    }catch(e)
    {}
    return null;
}

而_style中却从没包蕴对height的概念,由此element的height样式就不见了,不是开始时期所要的结果。要消除这几个主题素材,能够用反射机制来重写setStyle函数:

    if(pickerField=='background')elem("zyad_style_bg").style.backgroundColor='#' colorValue;     

function BrdBlur() {
    if (gIsIE)
    {
        if (!CommObjectCheck(document.activeElement, event.srcElement)) {
            setTimeout("LoadPos();HideMenu();", 10);
        }
    }
}

复制代码 代码如下:

    if(pickerField=='border'){ 

  
//全局事件绑定
window.onblur =function(){
    if(!gIsIE){
        HideMenu();
    }
};
window.onerror = function(){
    return true;
};
document.onmousemove = function(e){
/*    if(gIsIE) var el = event.srcElement;
    else var el = e.target;
    var tdView = S("tdView");
    var tdColorCode = S("tdColorCode");
    var dvForeColor =S("dvForeColor");
    var dvPortrait =S("dvPortrait");
    var fontsize =S("fontsize");
    var fontface =S("fontface");
    if(el.tagName == "IMG"){
        try{
            if(IsInColorBrd(el)){
                //tdView.bgColor = el.parentNode.bgColor;
                //tdColorCode.innerHTML = el.parentNode.bgColor
            }
        }catch(e){}
    }else{
        return;
        Disp(dvForeColor,0);
        if(!IsInFontFaceBrd(el)) Disp(fontface,0);
        if(!IsInFontSizeBrd(el)) Disp(fontsize,0);
    }
    */
};
function DectoHex(num) {
  var i,j=20,str = "#",N="ABCDEF";
  while(j >= 0) {
    i = (num >> j);
    str  = (i>9)?N.charAt(i-10):i;
    j -= 4;
  }
  return str;
}
function GetColorFromBg(bg)
{
    var i = bg.indexOf("("),j=bg.indexOf(")"),s=bg.substr(i 1,j-i-1).split(",");
    return DectoHex((s[0]<<16)   (s[1]<<8)   parseInt(s[2]));
}
document.onclick = function(e){
    if(gIsIE) var el = event.srcElement;
    else var el = e.target;
    var dvForeColor =S("dvForeColor");
    var dvPortrait =S("dvPortrait");

function setStyle(_style){
//获得要转移样式的分界面临象
var element=getElement();
for(var p in _style){
element.style[p]=_style[p];
}
}

        elem("zyad_style_bg").style.border=" 1px solid #" colorValue;         

    try{

次第中遍历_style的各类属性,获得属性名称,然后再利用方括号语法将element.style中的对应的属性赋值为_style中的相应属性的值。进而,element中仅改换钦命的体裁,而别的样式不会更改,获得了所要的结果。^-^

本文由乐百家前段发布,转载请注明来源:QQ邮箱的一个文件编辑器代码