目的是为opera添加右键菜单"全选并复制"...对应的命令类似于"select all & copy"... 但是opera9.x以后不支持在页面弹出菜单[对应浏览器菜单配置ini的Document Popup Menu段]中用select all这样的命令... 按了键盘的ctrl+a之后却可以调用opera的"copy"命令来复制选中内容.... 所以我需要的就是用js实现 "全选" 效果...然后就可以调用 "copy" 来复制了... 拒绝vbs或其他按键模拟类外部工具的辅助,,我需要能跨平台的代码,,只有js解释器是内置的并且跨浏览器跨平台,,,所以必须用标准javascript来实现...我看了phpbb里一段选中代码用的js脚本...改装了一下...但是只能在phpbb里选中<code>标签的内容...改成"body"之后就没反应了: function selectCode(a){ var e = a.parentNode.parentNode.getElementsByTagName('code')[0]; var s = window.getSelection(); var r = document.createRange(); r.selectNodeContents(e); s.removeAllRanges(); s.addRange(r); } selectCode(document.getElementsByTagName('*')[1]);void(0);
<body> afefeLZ<br/><a href="fdjlfj">fafljal</a><br/>1245<br/> <img src="logo.gif"><br/> fefefe</body> <script type="text/javascript"> function selectCode(a){ var e = a//a.parentNode.parentNode.getElementsByTagName('code')[0]; if(document.all){ var r=document.selection.createRange(); r.moveEnd("character",e.innerText.length);r.select() } else{ var s = window.getSelection(); var r = document.createRange(); r.selectNodeContents(e); s.removeAllRanges(); s.addRange(r); } } window.onload=function(){selectCode(document.body);} </script>
楼上大哥的代码只在firefox里有效...opera不行阿... javascript:function selectCode(a){var e = a;var s = window.getSelection();var r = document.createRange();r.selectNodeContents(e);s.removeAllRanges();s.addRange(r); }selectCode(document.body); 你贴在opera的地址栏试试...他啥都不选...也不报错...很诡异...只有直接写在页面源码里的才行...我要做外部脚本加载的...不是直接写在页面里那种... 麻烦再帮我看下呗~~谢谢拉~~
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>显示字符</title>
</head>
<style type="text/css">
.span01{font-weight:bold; font-family:verdana; font-size:150px; color:#FF6600; display:block; text-align:center; padding:5px;}
</style><body id="body">
<p> </p>
<p>
<span class="span01" id="con">show position</span>
</p>
<p> </p><script language="javascript" type="text/javascript">
var i=0;
function showWord()
{
var w="CSDN"; //存放需要显示的字符串
var o=document.getElementById("con"); //显示的容器位置
var tmp="";
o.innerHTML="";
tmp=w.substr(i,1);
if (i==w.length)
o.innerHTML=w;
else
{o.innerHTML=tmp;
i++;
setTimeout("showWord()",1000);
}
}
showWord();var a;
a=document.getElementById("body").innerHTML;
alert(a);
</script>
</body>
</html>
但是opera9.x以后不支持在页面弹出菜单[对应浏览器菜单配置ini的Document Popup Menu段]中用select all这样的命令...
按了键盘的ctrl+a之后却可以调用opera的"copy"命令来复制选中内容....
所以我需要的就是用js实现 "全选" 效果...然后就可以调用 "copy" 来复制了...
拒绝vbs或其他按键模拟类外部工具的辅助,,我需要能跨平台的代码,,只有js解释器是内置的并且跨浏览器跨平台,,,所以必须用标准javascript来实现...我看了phpbb里一段选中代码用的js脚本...改装了一下...但是只能在phpbb里选中<code>标签的内容...改成"body"之后就没反应了:
function selectCode(a){
var e = a.parentNode.parentNode.getElementsByTagName('code')[0];
var s = window.getSelection();
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);
}
selectCode(document.getElementsByTagName('*')[1]);void(0);
但是我觉得这么做太恶心了...而且涉及到一些html标签和js保留字的替换问题...正则也很麻烦...实在不想出此下策...
总之能直接用标准javascript实现ctrl+a是最理想的效果...
只能通过textRange来操作。
afefeLZ<br/><a href="fdjlfj">fafljal</a><br/>1245<br/>
<img src="logo.gif"><br/>
fefefe</body>
<script type="text/javascript">
function selectCode(a){
var e = a//a.parentNode.parentNode.getElementsByTagName('code')[0];
if(document.all){
var r=document.selection.createRange();
r.moveEnd("character",e.innerText.length);r.select()
}
else{
var s = window.getSelection();
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);
}
}
window.onload=function(){selectCode(document.body);}
</script>
javascript:function selectCode(a){var e = a;var s = window.getSelection();var r = document.createRange();r.selectNodeContents(e);s.removeAllRanges();s.addRange(r); }selectCode(document.body);
你贴在opera的地址栏试试...他啥都不选...也不报错...很诡异...只有直接写在页面源码里的才行...我要做外部脚本加载的...不是直接写在页面里那种...
麻烦再帮我看下呗~~谢谢拉~~
还是直接写htm页面里才管用的??
我也是opera9.52阿...等我进虚拟机试试9.64的行不行....
算了...散分走人...不麻烦你了~~