search
HomeWeb Front-endJS TutorialA text editor code for QQ mailbox_javascript skills

edt_color_slt.js
复制代码 代码如下:

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  = '';
    _r  = ' ';
    _r  = "A text editor code for QQ mailbox_javascript skills ";
}
function paintRow(color_row) //一行
{    
    _r  ='';
    for (var i = 0,l=color_row.length; i     {
        paintCell(color_row[i]);
    }
    _r  ='';
}
function paintTable(b) //表格
{
    _r  ='';
    for (var i = 0,l=b.length; i         paintRow(b[i]);
    }
    _r  ='
';
}
function paintCube() { //大边框    
    _r  = '';
    _r  ='');
    _r  ='
';
    paintTable(color_table);
    _r  =('
';
    return _r;
}

edt_main.js
复制代码 代码如下:

//html输出
function output(dat,templ,b)
{
    for(var i=0;i    {
      var d = dat[i];
      if(d.join)
      {  
        for(var j=0;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 = ' A text editor code for QQ mailbox_javascript skillsvar commHeadMask = ' A text editor code for QQ mailbox_javascript skillsvar sComm = commHead   commFunc;



//模块结构: 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, "");
};

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
{ // Put the focus on the back of the picture after inserting the picture
if (type == "Insertimage" && GISIE) {
var r = doc.selection.createrange ();
}


doc.execCommand(type,false,para);

//Place the focus behind the image after inserting it
if (type == "InsertImage" && gIsIE) {
r.move("character");
          r.select(); {
return ( ( str.indexOf("://") > 1 ) || (str.indexOf(":\") > 1) );
}
function addHyperLink() {
var f = F("HtmlEditor");
//Haha, finally found a method that is compatible with mf
var sel = f.document.selection != null ? f.document.selection.createRange( ).text : f.document.getSelection();
if(sel.length>0)
{
var sURL=window.prompt("Please enter the target address of the link (e.g. http:// www.qq.com/):", "http://");
if(sURL != null)
{
if(!IsValidURL(sURL))
{
sURL= "http://" sURL;
                                                else
{
alert("Please select the text to be connected first.");
    }
}
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;
}

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 and backColor are only responsible for popping up ColorBoard and do not require ExecCmd (ExecCmd will cause white at this time)
function OnForeColor(e) {
SavePos();
HideMenu();
var sColor = DispColorBrd (e);
gSetColorType = "foreColor";
if(gIsIE && gIEVer {
ExecCmd(gSetColorType, sColor);
}
return ;
}
function OnBackColor(e){
SavePos();
HideMenu();
var sColor = DispColorBrd(e,1);
gSetColorType = (gIsIE)?"backColor" :"hilitecolor";
if(gIsIE && gIEVer {
ExecCmd(gSetColorType, sColor);
}
return
}

function OnMo(e) {
SavePos();
HideMenu();
var sMo = DispMoBrd(e);
if(gIsIE && gIEVer {
ExecCmd("InsertImage",sMo);
}
return;
}
function OnTBMouseOver(obj) {
SetBorderMouse(obj,0);
}
function OnTBMouseDown(obj) {
SetBorderMouse(obj,1);
}
function OnTBMouseOut(obj) {
obj.style.border="none";
}
//HTML edit box
function SetEditable(){
var doc = window.frames["HtmlEditor"].document;
doc.designMode="on";
if(!gIsIE) {
                                                                                                                                                            . 🎜>}
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();
                                                                                                                                                                                 
function SetDiv()
{

    var loc = "" + window.parent.location;
    if(loc.indexOf("setting") > 0)
    {
        Disp(document.getElementById("add_pic_id"),0);
/*        removed by angusdu 2006-11-17
        if( !/^
 /.test(HtmlEditor.document.body.innerHTML))
        {
            HtmlEditor.document.body.innerHTML = HtmlEditor.document.body.innerHTML+"
 
";
        }
*/        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;
            }

        }
    }

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

    //    HtmlEditor.document.body.innerHTML="
 
" 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("") > -1)
            {
                doc.body.style.margin = '0.5% 0 0 0';
                doc.body.style.background = '#fff';
                doc.body.style.fontSize = '12px';
                return;
            } 

        }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        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        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      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        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增加的函数

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

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

}

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

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

  
//全局事件绑定
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]}
document.onclick = function(e){
    if(gIsIE) var el = event.srcElement;
    else var el = e.target;
    var dvForeColor =S("dvForeColor");
    var dvPortrait =S("dvPortrait");

    try{

        if(IsInColorBrd(el)){
            //var _bgColor = (el.tagName == "IMG") ? el.parentNode.bgColor : el.bgColor;
            var t = el;
            if( t.tagName != "IMG")    {
                t = t.getElementsByTagName("IMG")[0];
            }
            var _bgColor = t.style.background "";
            if(_bgColor.indexOf(")") > -1) //firefox
            {
                _bgColor = GetColorFromBg(_bgColor);
            }
            ExecCmd(gSetColorType, _bgColor);
            Disp(dvForeColor,0);
            return;
        }

        if (IsInMoBrd(el)) {
            var t = el;
            if( t.tagName == "TD")    {
                t = el.getElementsByTagName("IMG")[0];
            }
            if (t.tagName == "IMG" && t.attributes["data"] != null)
            {
                ExecCmd("InsertImage", giMoBaseUrl   t.attributes["data"].nodeValue);
                Disp(S("dvMo"), 0);
            }
            return;
        }
    }catch(e){}

    HideMenu();
    var idTable = [
     "imgFontface","fontface"
    ,"imgFontsize","fontsize"
    ,"imgFontColor","fontsize"
    ,"imgBackColor","dvForeColor"
    ,"imgFace","dvPortrait"
    ,"imgAlign","divAlign"
    ,"imgList","divList"];
    for(var i=0;i      if( idTable[i]==el.id)
      {
        var obj = S(idTable[i 1]);
        obj?(obj.style.display = ""):0;
        break;
      }
    }
};
//全局变量
public_description = new editor;
var gSetColorType = ""; 
var gIsIE = document.all; 
var gIEVer = getIEVer();
var gLoaded = false;
var ev = null;

//增加源代码编辑器...
//add by angusdu 2006-11-21
var curEditor = "Html";
function EnableToolBar(flag) {
    var tools = document.getElementsByName("tool_mask");
    for (i = tools.length - 1; i >= 0; i--) {
        Disp(tools[i], flag);
    }
    if (S("add_pic_id").style.display == "") {
        Disp(S("add_pic_mask_id"), flag);
    }
}
function ChangeEditor() {
    if (curEditor == "Html") {
        curEditor = "source";
        Disp(S("sourceEditor"), 1);
        Disp(S("HtmlEditor"), 0);
        S("sourceEditor").value = HtmlEditor.document.body.innerHTML;
        S("sourceEditor").focus();
        S("htmlbtn").title = "图文编辑";
        S("htmlbtn").innerHTML = "";
        EnableToolBar(1);
    }
    else {
        curEditor = "Html";
        Disp(S("sourceEditor"), 0);
        Disp(S("HtmlEditor"), 1);
        HtmlEditor.document.body.innerHTML = S("sourceEditor").value;
        F("HtmlEditor").focus();
        S("htmlbtn").title = "编辑HTML源码";
        S("htmlbtn").innerHTML = "";
        EnableToolBar(0);
    }
}
function GetEditorType() {
    return (curEditor == "Html" ? "Html" : "source");
}

//增加对编辑器的高度修改接口
var gMinSize = 0;
function GetMinSize() {
    if (!gMinSize) {
        gMinSize = parseInt(S("HtmlEditor").style.height);
    }
    return gMinSize;
}
function AddElementHeight(el, l) {
    el.style.height = (parseInt(el.style.height)   l)   "px";
}
function StretchEditor(bIsLarge, l, frameid) {
    //默认伸缩长度为50px
    l = (l != null ? l : 50);
    var pw = window.parent;
    var pwif = pw.document.getElementsByTagName("iframe");
    for (i = pwif.length - 1; i >= 0; i--) {
        if (pwif[i].id && (frameid ? pwif[i].id == frameid : GetDoc(pw.frames[pwif[i].id]).body.innerHTML == GetDoc().body.innerHTML)) {
            if (parseInt(S("HtmlEditor").style.height)                 return;
            }
            l = (bIsLarge ? l : (-1)*l);
            AddElementHeight(pwif[i], l);
            AddElementHeight(S("HtmlEditor"), l);
            AddElementHeight(S("sourceEditor"), l);
            return ;
       }
    }
}


地地下载
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
JavaScript: Exploring the Versatility of a Web LanguageJavaScript: Exploring the Versatility of a Web LanguageApr 11, 2025 am 12:01 AM

JavaScript is the core language of modern web development and is widely used for its diversity and flexibility. 1) Front-end development: build dynamic web pages and single-page applications through DOM operations and modern frameworks (such as React, Vue.js, Angular). 2) Server-side development: Node.js uses a non-blocking I/O model to handle high concurrency and real-time applications. 3) Mobile and desktop application development: cross-platform development is realized through ReactNative and Electron to improve development efficiency.

The Evolution of JavaScript: Current Trends and Future ProspectsThe Evolution of JavaScript: Current Trends and Future ProspectsApr 10, 2025 am 09:33 AM

The latest trends in JavaScript include the rise of TypeScript, the popularity of modern frameworks and libraries, and the application of WebAssembly. Future prospects cover more powerful type systems, the development of server-side JavaScript, the expansion of artificial intelligence and machine learning, and the potential of IoT and edge computing.

Demystifying JavaScript: What It Does and Why It MattersDemystifying JavaScript: What It Does and Why It MattersApr 09, 2025 am 12:07 AM

JavaScript is the cornerstone of modern web development, and its main functions include event-driven programming, dynamic content generation and asynchronous programming. 1) Event-driven programming allows web pages to change dynamically according to user operations. 2) Dynamic content generation allows page content to be adjusted according to conditions. 3) Asynchronous programming ensures that the user interface is not blocked. JavaScript is widely used in web interaction, single-page application and server-side development, greatly improving the flexibility of user experience and cross-platform development.

Is Python or JavaScript better?Is Python or JavaScript better?Apr 06, 2025 am 12:14 AM

Python is more suitable for data science and machine learning, while JavaScript is more suitable for front-end and full-stack development. 1. Python is known for its concise syntax and rich library ecosystem, and is suitable for data analysis and web development. 2. JavaScript is the core of front-end development. Node.js supports server-side programming and is suitable for full-stack development.

How do I install JavaScript?How do I install JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript does not require installation because it is already built into modern browsers. You just need a text editor and a browser to get started. 1) In the browser environment, run it by embedding the HTML file through tags. 2) In the Node.js environment, after downloading and installing Node.js, run the JavaScript file through the command line.

How to send notifications before a task starts in Quartz?How to send notifications before a task starts in Quartz?Apr 04, 2025 pm 09:24 PM

How to send task notifications in Quartz In advance When using the Quartz timer to schedule a task, the execution time of the task is set by the cron expression. Now...

In JavaScript, how to get parameters of a function on a prototype chain in a constructor?In JavaScript, how to get parameters of a function on a prototype chain in a constructor?Apr 04, 2025 pm 09:21 PM

How to obtain the parameters of functions on prototype chains in JavaScript In JavaScript programming, understanding and manipulating function parameters on prototype chains is a common and important task...

What is the reason for the failure of Vue.js dynamic style displacement in the WeChat mini program webview?What is the reason for the failure of Vue.js dynamic style displacement in the WeChat mini program webview?Apr 04, 2025 pm 09:18 PM

Analysis of the reason why the dynamic style displacement failure of using Vue.js in the WeChat applet web-view is using Vue.js...

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software