所使用到的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) + ' <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();"> <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
分享到:
相关推荐
在IT行业中,尤其是在Web开发领域,Gmail添加附件的功能是一个常见的需求,特别是在构建与电子邮件相关的应用程序时。这个项目是用C#语言实现的,它允许用户直接通过网页上传文件到Gmail,无需额外点击发送按钮。...
通过以上步骤,我们可以创建一个类似QQ邮箱的收件人添加界面,提供便捷的输入、自动补全和格式验证功能。这个过程需要对HTML、CSS和JavaScript有深入理解,同时也需要关注用户交互设计,以确保最终产品的易用性。...
163.com邮箱的设置相对简单,通常无需手动配置服务器,但126.com和gmail.com需要这些详细步骤。 通过以上步骤,你应该能够成功地在Outlook 2010中配置126.com和gmail.com的邮箱账户,实现邮件的收发。这个过程可能...
总之,Android平台下处理Gmail邮件发送和接收涉及多个步骤,包括构建邮件、添加附件、获取用户授权、连接SMTP/IMAP服务器以及解析邮件内容。理解这些概念和方法对于开发涉及邮件功能的Android应用至关重要。
以上就是使用JavaMail API通过Gmail发送邮件的基本过程,无论是无附件还是有附件,主要区别在于是否创建和添加`MimeBodyPart`以及`MimeMultipart`。通过理解和应用这些概念,你可以灵活地构建满足需求的邮件系统。
本示例将深入探讨如何使用C#实现一个简单的邮件发送功能,包括添加附件。以下是一个详细的步骤和相关知识点: 1. **SMTP(Simple Mail Transfer Protocol)服务**:SMTP是互联网上用于发送电子邮件的标准协议。在C#...
在本文中,我们将深入探讨如何使用Visual Studio 2015 C++ Win32应用程序通过SMTP(Simple Mail Transfer Protocol)发送邮件,特别是针对Gmail、163、QQ和Yahoo等主流邮件服务提供商。这个例子提供了完整的源代码,...
网页上仿Gmail拼写检查控件及 AJAX实现的TAB脚本控件
在仿 Gmail 验证码的场景中,我们通常会遇到以下几点关键技术点: 1. **颜色干扰**:为了增加自动化程序识别的难度,验证码通常会使用颜色混合、色块干扰等手法。在仿 Gmail 的验证码设计中,可能会采用随机背景色...
### Hotmail, Gmail, Yahoo, 126, 163, Yeah, QQ 邮箱配置POP参数 #### 一、概述 在互联网时代,电子邮箱作为重要的通信工具之一,广泛应用于个人和企业之间。为了更好地管理和利用邮件资源,用户常常需要将不同...
开发者可能使用了图形用户界面(GUI)设计工具,如Adobe XD、Sketch或Figma等,来构建这个登录界面,同时可能参考了原版QQ的设计风格,以达到高度仿真。 其次,"记录账号密码"这部分涉及到数据存储和安全。开发者...
2. 使用快捷方式:将Gmail添加到浏览器书签或桌面快捷方式,快速访问。 3. 登录提示:设置手机接收登录提示,当有人尝试从新设备或位置登录时,会收到通知。 四、Gmail功能介绍 1. 邮件分类:Gmail的自动分类功能...
最近一直忙于项目上的QQ、MSN、邮箱(目前以实现163、126、gmail、sina、tom、sohu、yahoo等)通讯录地址获取;其中搜狐失效还需研究一下! 在网上找了一些,大部分都已经失效,为此我重新整理了一下;特别放出126的...
总之,“仿知乎登陆界面邮箱自动补全”是一个涉及前端交互设计、数据处理和用户界面优化等多个方面的功能。实现这一功能需要综合运用多种编程技术和设计原则,以提供流畅、安全且用户体验优良的登录过程。
本篇将详细介绍如何使用C#通过126、163以及Gmail邮箱发送和接收邮件。 首先,我们需要引入`System.Net.Mail`命名空间,它包含了处理电子邮件所需的所有类。发送邮件主要涉及`SmtpClient`和`MailMessage`两个类。`...
// 添加附件 AlternateView htmlView = AlternateView.CreateAlternateViewFromString(message.Body, null, "text/html"); message.AlternateViews.Add(htmlView); Attachment attachment = new Attachment("附件...
"Microsoft Outlook 2010 设置 126 和 Gmail 邮箱账户详细图解教程" 本教程将指导您如何在 Microsoft Outlook 2010 中设置 126.com 和 Gmail.com 邮箱账户。下面是详细的步骤和配置信息: 设置 126.com 账户 1. ...
此外,Gmail4J提供了管理收件箱、移动邮件到不同文件夹、读取邮件附件、设置星标和标签等功能。例如,你可以将一封邮件标记为已读: ```java GmailMessage markedMessage = client.getMessageById("message_id"); ...
3. **接收邮件**:获取Gmail服务器上的新邮件,包括邮件的主题、发件人、收件时间、正文内容和附件等信息。 4. **管理收件箱**:实现对邮件的分类、标记、删除、归档等操作,以保持邮箱的整洁。 5. **搜索邮件**:...