- 浏览: 1336380 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (471)
- 原创文章 (4)
- Database (84)
- J2SE (63)
- Web (26)
- Javascript (30)
- Lucene (11)
- os (13)
- 算法 (8)
- Webservice (1)
- Open projects (18)
- Hibernate (18)
- Spring (15)
- Css (2)
- J2ee (2)
- 综合技术 (18)
- 安全管理 (13)
- PatternsInJava (27)
- NIO (5)
- Ibatis (2)
- 书籍收藏 (1)
- quartz (7)
- 并发编程 (15)
- oracle问题 (2)
- ios (60)
- coco2d-iphone (3)
- C++ (6)
- Zookeeper (2)
- golang (4)
- animation (2)
- android (1)
最新评论
-
dandingge123:
【引用】限制UITextField输入长度的方法 -
qja:
...
对List顺序,逆序,随机排列实例代码 -
安静听歌:
现在在搞这个,,,,,哎~头都大了,,,又freemarker ...
通用大型网站页面静态化解决方案(一) -
springdata-jpa:
java quartz定时任务demo教程源代码下载,地址:h ...
Quartz 配置参考 -
马清天:
[b][/b][list][*]引用[u][/u][/list ...
通用大型网站页面静态化解决方案(一)
写道
<html>
<head>
<script type="text/javascript">
<script language="javascript">
//IE、Firefox下Clipboard的读写js脚本
/**************************************************
将字符串maintext复制到剪贴板
**************************************************/
function setClipboard(maintext) {
if (window.clipboardData) {
return (window.clipboardData.setData("Text", maintext));
}
else if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext=maintext;
str.data=copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid=Components.interfaces.nsIClipboard;
if (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
return true;
}
return false;
}
/**************************************************
返回剪贴板的内容
**************************************************/
function getClipboard() {
if (window.clipboardData) {
return(window.clipboardData.getData('Text'));
}
else if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
trans.addDataFlavor('text/unicode');
clip.getData(trans,clip.kGlobalClipboard);
var str = new Object();
var len = new Object();
try {
trans.getTransferData('text/unicode',str,len);
}
catch(error) {
return null;
}
if (str) {
if (Components.interfaces.nsISupportsWString) str=str.value.QueryInterface(Components.interfaces.nsISupportsWString);
else if (Components.interfaces.nsISupportsString) str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
else str = null;
}
if (str) {
return(str.data.substring(0,len.value / 2));
}
}
return null;
}
</script>
</script>
</head>
<body onmouseup="test()">
<span class="red b" id="PageBreak">[--page--]</span><br />
<input type="button" value="复制代码" onClick='javascript:if(setClipboard(document.getElementById("PageBreak").innerHTML)) {alert("已复制到剪切板,请在文章内容分页处粘贴")};' class="button" />
<br><br>
</body>
</html>
<head>
<script type="text/javascript">
<script language="javascript">
//IE、Firefox下Clipboard的读写js脚本
/**************************************************
将字符串maintext复制到剪贴板
**************************************************/
function setClipboard(maintext) {
if (window.clipboardData) {
return (window.clipboardData.setData("Text", maintext));
}
else if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext=maintext;
str.data=copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid=Components.interfaces.nsIClipboard;
if (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
return true;
}
return false;
}
/**************************************************
返回剪贴板的内容
**************************************************/
function getClipboard() {
if (window.clipboardData) {
return(window.clipboardData.getData('Text'));
}
else if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
trans.addDataFlavor('text/unicode');
clip.getData(trans,clip.kGlobalClipboard);
var str = new Object();
var len = new Object();
try {
trans.getTransferData('text/unicode',str,len);
}
catch(error) {
return null;
}
if (str) {
if (Components.interfaces.nsISupportsWString) str=str.value.QueryInterface(Components.interfaces.nsISupportsWString);
else if (Components.interfaces.nsISupportsString) str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
else str = null;
}
if (str) {
return(str.data.substring(0,len.value / 2));
}
}
return null;
}
</script>
</script>
</head>
<body onmouseup="test()">
<span class="red b" id="PageBreak">[--page--]</span><br />
<input type="button" value="复制代码" onClick='javascript:if(setClipboard(document.getElementById("PageBreak").innerHTML)) {alert("已复制到剪切板,请在文章内容分页处粘贴")};' class="button" />
<br><br>
</body>
</html>
写道
下面都是我的猜测,ff的鼠标捕获相当于能自动设置和释放的document.body.setCapture(false)。
因为我测试下面的程序,发现ie和ff效果是差不多的:
ie:
<html>
<body>
<div id="aa" onmouseover="alert(1)"> </div>
<script>
document.body.onmousedown=function(){this.setCapture(false)}
document.body.onmouseup=function(){this.releaseCapture()}
document.onmousemove=function(){aa.innerHTML+=1}
</script>
</body>
</html>
ff:
<html>
<body>
<div id="aa" onmouseover="alert(1)"> </div>
<script>
document.onmousemove=function(){aa.innerHTML+=1}
</script>
</body>
</html>
因为我测试下面的程序,发现ie和ff效果是差不多的:
ie:
<html>
<body>
<div id="aa" onmouseover="alert(1)"> </div>
<script>
document.body.onmousedown=function(){this.setCapture(false)}
document.body.onmouseup=function(){this.releaseCapture()}
document.onmousemove=function(){aa.innerHTML+=1}
</script>
</body>
</html>
ff:
<html>
<body>
<div id="aa" onmouseover="alert(1)"> </div>
<script>
document.onmousemove=function(){aa.innerHTML+=1}
</script>
</body>
</html>
- ie: document.selection.empty()
- ff: window.getSelection().removeAllRanges()
为了防止在拖放过程中选择内容,所以把它放到Move程序中,下面是兼容的写法:
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
发表评论
-
教你实现 jQuery 的选择器
2010-12-05 21:08 6527做网站免不了用到JS,如果大量用到选择一个JS框架是个不错的选 ... -
关闭输入框自动完成 firefox msie disable input autocomplete
2010-10-28 10:43 3131English Title:Shut input casing ... -
js中prototype用法
2010-10-20 15:56 1278prototype 是在 IE 4 及其以后版本引入的一个 ... -
jquery source
2010-10-20 15:03 1247http://tech.ddvip.com/2009-01/1 ... -
使用 JavaScript 拦截和跟踪浏览器中的 HTTP 请求
2010-10-20 14:10 3824HTTP 请求的拦截技术可以广泛地应用在反向代理、拦截 Aja ... -
监听输入框值的即时变
2010-10-20 12:34 1642写道 <html> <head> ... -
判断上传文件的大小
2010-10-19 12:44 1368var Sys = {}; if ... -
js继承的实现
2010-10-19 11:16 1151写道 js继承有5种实现方式: 1、继承第一种方式:对象 ... -
js面向对象
2010-10-19 11:15 2574写道 1、js区别于java的特性还有:实例化类对象时,如 ... -
js高级进阶
2010-10-19 11:14 8168写道 1、js不支持函数(方法)的重载 2、js中,一个 ... -
jQuery 简但实现select二级联动
2010-08-23 12:09 4772写道 < !DOCTYPE html PUBLIC ... -
原始的Ajax 直接使用XmlHttpRequest
2010-08-23 11:29 1908写道 //定义XMLHttp实例 var xmlHttp ... -
jquery checkbox,radio ,select value
2010-08-12 10:01 1696写道 .date-region select:visi ... -
jquery flot 使用笔记
2010-06-27 00:57 5812写道 <!DOCTYPE HTML PUBLIC &q ... -
js clone
2010-05-13 13:50 1289<!DOCTYPE html PUBLIC &q ... -
dhtml
2010-04-09 10:18 2380写道 Object.__defineGetter__ = ... -
MzTreeView
2010-03-24 16:05 5672写道 MzTreeView 1.0 是数据一次性加载,客户 ... -
JavaScript 节点操作 以及DOMDocument属性和方法
2010-03-24 15:28 16301Attributes 存储节点的属 ... -
在网页里打开本地的驱动器
2010-03-24 12:14 1603<html> <head> < ... -
页面登录进度条
2010-03-24 12:13 1634<form name=loading> < ...
相关推荐
JavaScript操作剪贴板 javascript可以轻松操作客户端剪贴板内容,不过只适用IE5以上浏览器
javascript可以轻松操作客户端剪贴板内容,不过只适用IE5以上浏览器。 javascript可以使用window.clipboardData对象处理剪贴板内容。 保存到剪贴板的方法setData(param1, param2)。 param1 :数据类型 text 或 URL...
在早期,由于浏览器之间的差异和安全限制,JavaScript直接操作剪贴板的功能并不一致。例如,Internet Explorer支持ActiveX对象,可以通过`document.execCommand('copy')`来实现复制功能,但其他如Firefox、Chrome等...
BlazorClipboard库弥补了这一不足,通过封装浏览器的剪贴板接口,为Blazor开发者提供了一种简单易用的方式来操作剪贴板内容。 使用BlazorClipboard API,开发者可以实现以下功能: 1. **复制文本**:通过调用提供的...
Clipboard.js就是这样一个现代的、轻量级的库,用于在JavaScript环境中方便地实现剪贴板操作。 Clipboard.js v2.0.4是一个专注于剪贴板复制功能的库,它的出现解决了在没有Flash的情况下复制内容的问题。这个库设计...
3. 设置剪贴板客户端的手形光标,使用户看起来可以进行拖动操作。 4. 设置要复制的文本,这里是通过`$("#txtInvite_"+id).val()`获取关联输入框的值。 5. 添加事件监听器,当复制操作完成时,会触发回调函数。在这个...
4. **插件系统**:除了基本的代码高亮功能外,jQuery Syntax 还可能包含一系列插件,以扩展其功能,如代码折叠、行号显示、复制到剪贴板等,以满足更复杂的需求。 **使用步骤** 1. **引入 jQuery 和 jQuery.Syntax...
ZeroClipboard的工作原理基于Adobe Flash Player,因为JavaScript在浏览器的安全策略下无法直接操作剪贴板内容。ZeroClipboard会创建一个透明的Flash对象,覆盖在网页上需要复制的按钮之上,当用户点击该按钮时,...
它会监听剪贴板事件,并在必要时阻止敏感数据的复制、剪切和粘贴操作。 3. **安全的密码验证** - 提供了一些基础的密码强度检查规则,例如最小长度、数字和特殊字符的混合等,帮助用户创建更强大的密码。 4. **...
EditPlus的剪贴板历史记录功能可以保存用户的剪贴板操作,允许用户随时回溯并粘贴之前复制的内容。 **6. 正则表达式搜索与替换** 在查找和替换功能中,EditPlus支持正则表达式,这对于处理大量文本数据或进行复杂的...
使用jQuery Validate,你可以减少服务器端的负载,因为大部分验证可以在客户端完成,提高用户体验。它还有多种自定义错误消息和错误显示方式,使得表单验证既高效又易于定制。 其次,拼音码生成通常涉及到中文字符...
这些按钮可以执行各种操作,如复制表格到剪贴板、打印表格、导出数据到CSV、Excel或PDF等。这极大地提高了用户在处理大量数据时的效率和便利性。 **Tabletools的主要特性** 1. **复制到剪贴板**:允许用户将表格...
`DisablePaste` 方法用于阻止用户在Web控件中进行剪贴板粘贴操作。同样,它检查控件是否非空,然后添加一个 `onpaste` 事件处理程序,该处理程序返回 `false`,从而阻止默认的粘贴行为。 这些示例展示的技巧在实际...
例如,可以创建一个按钮,当用户点击时,JavaScript会选择并复制特定的代码段到剪贴板。这可能涉及到DOM操作,选取代码元素,然后利用`document.execCommand('copy')`来复制选定的内容。 最后,我们讨论“下载”。...
10. **剪贴板管理**:编辑器提供了剪贴板历史记录,可以存储和重复使用多次复制的内容,避免了反复在剪贴板和编辑器之间切换。 11. **界面定制**:用户可以根据个人喜好调整界面布局,包括字体、颜色主题等,打造...
13. **剪贴板历史记录**:EditPlus保留了剪贴板的历史记录,可以随时回溯并粘贴以前复制过的文本。 总之,EditPlus作为一款优秀的代码编辑工具,以其全面的功能、高效的性能和高度可定制性赢得了广大开发者的好评。...
该编辑器具有剪贴板堆栈功能,可以存储和回溯多个复制/剪切的操作,方便在不同的文本片段间切换。 **7. 自定义快捷键** EditPlus允许用户自定义快捷键,可以根据个人习惯设定,提高操作速度。 **8. 行号和列选择**...
它支持剪贴板历史记录,可以保存多次复制的文本,方便随时粘贴。 总之,EditPlus作为一个全能的文本编辑器,不仅适合编写普通文档,更是程序员的得力助手。通过其丰富的特性,它可以大大提高代码编写、调试和管理...
这意味着用户可以在不同的设备之间无缝地传输和共享剪贴板内容,无论他们使用的是Windows、MacOS还是Linux操作系统。这种跨平台的设计是通过利用各种编程语言和框架实现的,例如Python、JavaScript或Qt,这些工具...