`
eclipse_spring
  • 浏览: 117394 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

仿126 GMail QQ添加附件的界面

阅读更多
所使用到的JavaScript代码如下:
var i = 0;  
function addAttachmentToList(){
 if (findAttachment(event.srcElement.value)) return;        
    var span = document.createElement('span');
    span.id = '_attachment' + i;
    span.innerHTML = extractFileName(event.srcElement.value) + '&nbsp;<a href="javascript:delAttachment(' + (i++) + ')"><font color="blue">删除</font></a><br/>';
    span.title = event.srcElement.value;
    G('attachmentList').appendChild(span);
    
    if (G('attachmentList').style.display == 'none')
    {
        G('btnAdd').value = '继续添加';
        G('attachmentList').style.display = '';
        G('btnClear').style.display = '';
    }

    G('total').innerText = '当前选择上传'+ G('attachmentList').childNodes.length + '个附件';
}

function selectAttachment()
{
    cleanInvalidUpfile();
    
    var upfile = '<input type="file" style="display:none" onchange="addAttachmentToList();" id="_upfile'+i+'">';
    document.body.insertAdjacentHTML('beforeEnd', upfile);
    G('_upfile'+i).click();
}

function extractFileName(fn)
{
    return fn.substr(fn.lastIndexOf("\\") + 1);
}

function findAttachment(fn)
{
    var o = G('attachmentList').getElementsByTagName('span');
    for(var i=0;i<o.length;i++)
        if (o[i].title == fn) return true;
    return false;
}

function delAttachment(id)
{
    G('attachmentList').removeChild(G('_attachment'+id));
    document.body.removeChild(G('_upfile'+id));
    
    // 当附件列表为空则不显示并且变化添加附件按钮文本
    if (G('attachmentList').childNodes.length == 0)
    {
        G('btnAdd').value = '添加附件';
        G('attachmentList').style.display = 'none';
        G('btnClear').style.display = 'none';
    }
    
    G('total').innerText = '当前选择上传'+ G('attachmentList').childNodes.length + '个附件';    
}

function cleanInvalidUpfile()
{
    var o = document.body.getElementsByTagName('input');
    for(var i=o.length-1;i>=0;i--)
      if (o[i].type == 'file' && o[i].id.indexOf('_upfile') == 0)
     {
          if (!G('_attachment'+o[i].id.substr(7)))
              document.body.removeChild(o[i]);
      }
}

function clearAttachment()
{
    var o = G('attachmentList').childNodes;
    for(var i=o.length-1;i>=0;i--)
        G('attachmentList').removeChild(o[i]);

    o = document.body.getElementsByTagName('input');
    for(var i=o.length-1;i>=0;i--)
      if (o[i].type == 'file' && o[i].id.indexOf('_upfile') == 0)
      {
          document.body.removeChild(o[i]);
      }    

    G('btnAdd').value = '添加附件';
    G('attachmentList').style.display = 'none';
    G('btnClear').style.display = 'none';
    
    G('total').innerText = '当前选择上传0个附件';    
      
}

function G(id)
{
    return document.getElementById(id);
}


将以上代码在页面中引用:
<HTML>
<HEAD></HEAD>
<BODY>
<fieldset style="border : 1px solid #84A24A;text-align:left;COLOR:#84A24A;FONT-SIZE: 
12px;font-family: Verdana;padding:5px;">
<legend>模仿126 GMail QQ邮箱添加附件</legend>
<input type="button" value="添加附件" id="btnAdd" onclick="selectAttachment();">&nbsp;<input type="button" value="清空附件" id="btnClear" style="display:none" onclick="clearAttachment();">
<div id="attachmentList" style="margin:3px 0px 0px 0px;padding:4px 3px 4px 3px;background-color:#DEEBC6;display:none;border:1px solid #84A24A;">
</div>
<div id="total" style="margin:3px 0px 0px 0px;">当前选择上传0个附件</div>
</fieldset>
</BODY>
</HTML>
  • 描述: 仿126 GMail QQ添加附件的界面运行截图
  • 大小: 19.8 KB
分享到:
评论
5 楼 lyg 2010-04-17  
于安全性考虑,file控件不能通过脚本来赋值和选择文件,想要上传文件就得通过鼠标来点击file控件自带的“浏览...”按钮,博主的这个写法虽然能够选择文件,但是无法上传文件的。
4 楼 abin103 2009-02-18  
先不说其他的 一点都不实用 不能通过ie安全 是不能提交到后台的 希望能提出改进 如果我改好了 我一定贴出来
3 楼 eclipse_spring 2008-10-14  
不是,没有使用Ajax框架,是纯JavaScript。
2 楼 fangyu12 2008-10-14  
是prototype框架的吧
1 楼 pubx 2008-10-08  
效果不错!

相关推荐

    Gmail添加附件源码

    在IT行业中,尤其是在Web开发领域,Gmail添加附件的功能是一个常见的需求,特别是在构建与电子邮件相关的应用程序时。这个项目是用C#语言实现的,它允许用户直接通过网页上传文件到Gmail,无需额外点击发送按钮。...

    仿qq邮箱添加收件人效果

    通过以上步骤,我们可以创建一个类似QQ邮箱的收件人添加界面,提供便捷的输入、自动补全和格式验证功能。这个过程需要对HTML、CSS和JavaScript有深入理解,同时也需要关注用户交互设计,以确保最终产品的易用性。...

    Microsoft_Outlook_2010设置126和gmail邮箱账户详细图解教程

    163.com邮箱的设置相对简单,通常无需手动配置服务器,但126.com和gmail.com需要这些详细步骤。 通过以上步骤,你应该能够成功地在Outlook 2010中配置126.com和gmail.com的邮箱账户,实现邮件的收发。这个过程可能...

    android 下gmail邮件包括附件发送和接收

    总之,Android平台下处理Gmail邮件发送和接收涉及多个步骤,包括构建邮件、添加附件、获取用户授权、连接SMTP/IMAP服务器以及解析邮件内容。理解这些概念和方法对于开发涉及邮件功能的Android应用至关重要。

    Gmail邮件通过JavaMail发送(不带附件与带一个附件)

    以上就是使用JavaMail API通过Gmail发送邮件的基本过程,无论是无附件还是有附件,主要区别在于是否创建和添加`MimeBodyPart`以及`MimeMultipart`。通过理解和应用这些概念,你可以灵活地构建满足需求的邮件系统。

    c#发送邮件实例(可以添加附件)

    本示例将深入探讨如何使用C#实现一个简单的邮件发送功能,包括添加附件。以下是一个详细的步骤和相关知识点: 1. **SMTP(Simple Mail Transfer Protocol)服务**:SMTP是互联网上用于发送电子邮件的标准协议。在C#...

    VS2015C++利用SMTP发送邮件的例子(支持附件发送)Gmail,163,qq,yahoo等邮箱

    在本文中,我们将深入探讨如何使用Visual Studio 2015 C++ Win32应用程序通过SMTP(Simple Mail Transfer Protocol)发送邮件,特别是针对Gmail、163、QQ和Yahoo等主流邮件服务提供商。这个例子提供了完整的源代码,...

    网页上仿Gmail拼写检查控件及 AJAX实现的TAB脚本控件

    网页上仿Gmail拼写检查控件及 AJAX实现的TAB脚本控件

    仿 gmail 验证码

    在仿 Gmail 验证码的场景中,我们通常会遇到以下几点关键技术点: 1. **颜色干扰**:为了增加自动化程序识别的难度,验证码通常会使用颜色混合、色块干扰等手法。在仿 Gmail 的验证码设计中,可能会采用随机背景色...

    hotmail,Gmail,Yahoo,126,163,Yeah,QQ邮箱配置POP参数

    ### Hotmail, Gmail, Yahoo, 126, 163, Yeah, QQ 邮箱配置POP参数 #### 一、概述 在互联网时代,电子邮箱作为重要的通信工具之一,广泛应用于个人和企业之间。为了更好地管理和利用邮件资源,用户常常需要将不同...

    2013QQ登陆界面

    开发者可能使用了图形用户界面(GUI)设计工具,如Adobe XD、Sketch或Figma等,来构建这个登录界面,同时可能参考了原版QQ的设计风格,以达到高度仿真。 其次,"记录账号密码"这部分涉及到数据存储和安全。开发者...

    Gmail 轻松登录

    2. 使用快捷方式:将Gmail添加到浏览器书签或桌面快捷方式,快速访问。 3. 登录提示:设置手机接收登录提示,当有人尝试从新设备或位置登录时,会收到通知。 四、Gmail功能介绍 1. 邮件分类:Gmail的自动分类功能...

    PHP获取163、sina、sohu、yahoo、126、gmail、tom邮箱联系人地址【已测试2009.10.10】

    最近一直忙于项目上的QQ、MSN、邮箱(目前以实现163、126、gmail、sina、tom、sohu、yahoo等)通讯录地址获取;其中搜狐失效还需研究一下! 在网上找了一些,大部分都已经失效,为此我重新整理了一下;特别放出126的...

    仿知乎登陆界面邮箱自动补全

    总之,“仿知乎登陆界面邮箱自动补全”是一个涉及前端交互设计、数据处理和用户界面优化等多个方面的功能。实现这一功能需要综合运用多种编程技术和设计原则,以提供流畅、安全且用户体验优良的登录过程。

    C# 发送Email接收邮件 126发送Email Gmail发送Email

    本篇将详细介绍如何使用C#通过126、163以及Gmail邮箱发送和接收邮件。 首先,我们需要引入`System.Net.Mail`命名空间,它包含了处理电子邮件所需的所有类。发送邮件主要涉及`SmtpClient`和`MailMessage`两个类。`...

    c#gmail发送邮件资料

    // 添加附件 AlternateView htmlView = AlternateView.CreateAlternateViewFromString(message.Body, null, "text/html"); message.AlternateViews.Add(htmlView); Attachment attachment = new Attachment("附件...

    MicrosoftOutlook2010设置126和gmail邮箱账户详细图解教程[归纳].pdf

    "Microsoft Outlook 2010 设置 126 和 Gmail 邮箱账户详细图解教程" 本教程将指导您如何在 Microsoft Outlook 2010 中设置 126.com 和 Gmail.com 邮箱账户。下面是详细的步骤和配置信息: 设置 126.com 账户 1. ...

    Gmail4J实例

    此外,Gmail4J提供了管理收件箱、移动邮件到不同文件夹、读取邮件附件、设置星标和标签等功能。例如,你可以将一封邮件标记为已读: ```java GmailMessage markedMessage = client.getMessageById("message_id"); ...

    Gmail邮箱网页操作.rar

    3. **接收邮件**:获取Gmail服务器上的新邮件,包括邮件的主题、发件人、收件时间、正文内容和附件等信息。 4. **管理收件箱**:实现对邮件的分类、标记、删除、归档等操作,以保持邮箱的整洁。 5. **搜索邮件**:...

Global site tag (gtag.js) - Google Analytics