最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:49:58
文档

复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题_javascript技巧

复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题_javascript技巧:但IE6两行JS代码就可以,IE7以上也差不多,只不过出来一个安全提示比较恶心,用户如果看到了,一定有怀疑; 再但就是Firefox、Chrome等根本就不让你复制; 记得以前网上有这方面的代码,找了一下,发现全部不能在firefox3.5以上的版本中应该,最后终于找到了
推荐度:
导读复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题_javascript技巧:但IE6两行JS代码就可以,IE7以上也差不多,只不过出来一个安全提示比较恶心,用户如果看到了,一定有怀疑; 再但就是Firefox、Chrome等根本就不让你复制; 记得以前网上有这方面的代码,找了一下,发现全部不能在firefox3.5以上的版本中应该,最后终于找到了



但IE6两行JS代码就可以,IE7以上也差不多,只不过出来一个安全提示比较恶心,用户如果看到了,一定有怀疑;
再但就是Firefox、Chrome等根本就不让你复制;
记得以前网上有这方面的代码,找了一下,发现全部不能在firefox3.5以上的版本中应该,最后终于找到了一个,代码还相当相当的复杂,不太敢用。
最后,憋的实在没有办法了,查了查资料,自已写了一个:
主要的理解的几个点:
1、Firefox这些浏览器,出于安全考虑吧,直接是不让复制的;
2、在Flash中,可以用System.setClipboard(),把内容扔到剪贴板上,然后再让FLASH工作在Firefox下;
3、在Flash播放器10.0之后呢,也是出于安全考虑吧,System.setClipboard的内容必须在FLASH里边;
4、用ExternalInterface可以和JS通信;
5、ExternalInterface在flash8中必须引用一下才可以;
默认的HTML代码:
代码如下:





所以,设计的时候,先作第一个判断,如果是IE,就还用默认的代码,这样最没有问题,如果不是,就用一个FLASH把默认的按钮覆盖;
代码如下:
if (window.XMLHttpRequest){//如果不是IE时,就用FLASH的方式复制
$('buttonBox').innerHTML = 'height="23" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash">';
}

以下是所有的JS文件:
代码如下:

function $(id){
return document.getElementById(id);
}
function copy(){//ie6
var value = $('testInput').value;
window.clipboardData.clearData();
window.clipboardData.setData("Text", value);
alert('复制成功!');
}
function flashCopy(){//firefox .......
return $('testInput').value;
}
function flashCopyBack(){
alert('复制成功!');
}
if("v" != "v"){//如果不是IE时,就用FLASH的方式复制
$('buttonBox').innerHTML = '';
}


FLASH按钮的代码如下:
代码如下:
on (release) {
import flash.external.ExternalInterface;
var inputText = ExternalInterface.call('flashCopy');
System.setClipboard(inputText);
ExternalInterface.call('flashCopyBack');
//_root.boboText.text = inputText;
}

原理,就是避开那个安全上的,在点FLASH中的按钮时,通过FLASH中的代码去调页面中的JS代码,JS代码可以拿到INPUT中的值,然后再传给FLASH,这时,FLASH中就有了这些值了,然后,FLASH自已再通过System.setClipboard把这些值存到剪贴板上; 再然后,他再去调用页面中的flashCopyBack,flashCopyBack只干一件事,就是提示已复制成功!
我在Firefox、chrome、ie中都测过了,没有问题,如果谁发现有问题,请告诉我,谢谢,因为我现在已经开始用!
转载请注明出处:子鼠

文档

复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题_javascript技巧

复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题_javascript技巧:但IE6两行JS代码就可以,IE7以上也差不多,只不过出来一个安全提示比较恶心,用户如果看到了,一定有怀疑; 再但就是Firefox、Chrome等根本就不让你复制; 记得以前网上有这方面的代码,找了一下,发现全部不能在firefox3.5以上的版本中应该,最后终于找到了
推荐度:
标签: 内容 代码 问题
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top