在onpaste事件中在编写execCommand("Paste")出现溢出问题

samuelpan 2005-07-21 08:09:57
在onpaste事件中在编写execCommand("Paste")

目的是在onpaste后对paste的内容进一步处理。

因为两个paste出现循环,出现stack overflow at line:0

有没有办法在onpaste中先取消onpaste事件,然后执行execCommand("Paste")
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
samuelpan 2005-07-21
  • 打赏
  • 举报
回复
clipboardData.getData('Text')
中的内容是要进行处理,但无法得到html代码,所以无法处理。
samuelpan 2005-07-21
  • 打赏
  • 举报
回复
在onpaste或者onbeforepaste时

能否有程序控制:先取消paste,然后再执行自定义paste
samuelpan 2005-07-21
  • 打赏
  • 举报
回复
我在onpaste中使用了
var oSrc = e.srcElement;
var text = window.clipboardData.getData("text");

insertElem(oSrc, text, e.offsetX, e.offsetY);

evt.returnValue = false;

因为oSrc得到的是<div>,无法得到<body>所以出错。
是是非非 2005-07-21
  • 打赏
  • 举报
回复
如果你一定要用onpaste事件,用一个全局的标志变量来处理

<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:v="http://www.i-love-mm.com/">
<head>
<title></title>
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="eglic" />
<link rel="stylesheet" type="text/css" href="" />
<style type="text/css">
v\:* {behavior:url(#default#VML);}
</style>
<script language="javascript" src=""></script>
<script language="javascript">
var flag=false;
function t1(){
if(flag) return false;
var p=clipboardData.getData('Text');
p=p.toUpperCase();
clipboardData.setData('Text',p);
flag=true;
document.execCommand('Paste');
flag=false;
}
</script>
</head>
<body>
<textarea onpaste="JavaScript:t1();" cols="30" rows="10"></textarea>
</body>
</html>
samuelpan 2005-07-21
  • 打赏
  • 举报
回复
粘贴后对粘贴的内容进行格式化
是是非非 2005-07-21
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:v="http://www.i-love-mm.com/">
<head>
<title></title>
<meta name="Generator" content="EditPlus" />
<meta name="Author" content="eglic" />
<link rel="stylesheet" type="text/css" href="" />
<style type="text/css">
v\:* {behavior:url(#default#VML);}
</style>
<script language="javascript" src=""></script>
<script language="javascript">
function t(){
var p=clipboardData.getData('Text');
p=p.toUpperCase();
clipboardData.setData('Text',p);
}
</script>
</head>
<body>
<textarea onbeforepaste="JavaScript:t();"></textarea>
</body>
</html>
是是非非 2005-07-21
  • 打赏
  • 举报
回复
用 onbeforepaste 试试

你是不是想在粘贴的时候检测剪贴板的内容?

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧