jogocun
小狐狸
小狐狸
  • UID15835
  • 注册日期2006-11-20
  • 最后登录2009-05-03
  • 发帖数73
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:10482回复:8

请教这段代码标准化哦document.body.oncopy

楼主#
更多 发布于:2007-08-17 13:38
<script>
document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "\r\n ---★ 本文转摘自『海枫博客』→ "+location.href; clipboardData.setData("text", text); } }, 100 ) }
</script>

以上代码作用是复制页面文章自动带上版权信息,但是在IE7、Opera、火狐浏览器下无效。
请教高手帮忙标准化哦,谢谢~
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
1楼#
发布于:2007-08-17 13:38
jogocun:<script>
document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "\r\n ---★ 本文转摘自『海枫博客』→ "+location.href; clipboardData.setData("text", text); } }, 100 ) }
</script>

以上代码作用是复制页面文章自动带上版权信息,但是在IE7、Opera、火狐浏览器下无效。
请教高手帮忙标准化哦,谢谢~
回到原帖


javascript控制台报什么错?
或者装上firebug调试一下。
jogocun
小狐狸
小狐狸
  • UID15835
  • 注册日期2006-11-20
  • 最后登录2009-05-03
  • 发帖数73
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2007-08-17 13:38
用火狐浏览有该代码的页面是不会执行这个效果,没任何提示~

我装下 firebug w扩展,只是个调试工具,不能纠错是否标准呀~
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
3楼#
发布于:2007-08-17 13:38
jogocun:用火狐浏览有该代码的页面是不会执行这个效果,没任何提示~

我装下 firebug w扩展,只是个调试工具,不能纠错是否标准呀~
回到原帖


就是依据调试工具的信息判断哪里不能执行。  如果网页有不能执行的东西,应该有错误信息的提示。 然后你以此来修改。

另外如果是想判断网页是否符合w3c标准,https://addons.mozilla.org/en-US/firefox/addon/249
可以试试。
jogocun
小狐狸
小狐狸
  • UID15835
  • 注册日期2006-11-20
  • 最后登录2009-05-03
  • 发帖数73
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2007-08-17 13:38
wushi777

就是依据调试工具的信息判断哪里不能执行。  如果网页有不能执行的东西,应该有错误信息的提示。 然后你以此来修改。

另外如果是想判断网页是否符合w3c标准,https://addons.mozilla.org/en-US/firefox/addon/249
可以试试。
回到原帖

谢谢,可就是没有报错提示的。

就是不知道这段代码怎么改才能适用于火狐浏览器,IE中是可以的。
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
5楼#
发布于:2007-08-17 13:38

谢谢,可就是没有报错提示的。

就是不知道这段代码怎么改才能适用于火狐浏览器,IE中是可以的。


可能是firefox不支持剪贴板操作。

http://www.thescripts.com/forum/thread153499.html
xoferiF
热心会员
热心会员
  • UID6559
  • 注册日期2005-06-05
  • 最后登录2020-04-24
  • 发帖数418
  • 经验24枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
  • 忠实会员
6楼#
发布于:2007-08-17 13:38
可以判断Ctrl+C被按下
jogocun
小狐狸
小狐狸
  • UID15835
  • 注册日期2006-11-20
  • 最后登录2009-05-03
  • 发帖数73
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2007-08-17 13:38
谢谢。

学代码,不懂英文也不行呀~

function copy_clip(mytext){
if (window.clipboardData)
{
// IE
window.clipboardData.setData("Text", mytext);
// Netscape
}
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.nsITransfera ble);
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.nsISupportsS tring);

var copytext=mytext;
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);
}
alert("Following info was copied to your clipboard:\n\n" + mytext);
return false;
}

这段试试?
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
8楼#
发布于:2007-08-17 13:38
不是。你看看他们的回复。
比如,第二个人说

Try this in non-IE browsers:

alert( window.clipboardData )


You will most likely get 'undefined'. Firefox et al don't support
copying to the clipboard.


然后后面的人说好像有变通的解决方案。再后面的人说什么我就没有细看了。
你自己研究吧。

也就是firefox是不支持剪贴板的set操作的,只能get。

你只能想其他的变通的方法,查查资料吧。
游客

返回顶部