您的位置:

js复制chrome和ie,chrome复制粘贴插件

js复制chrome和ie,chrome复制粘贴插件

更新:

本文目录一览:

求可以兼容火狐,chrome和ie浏览器的另存为网页js代码

您好!很高兴为您答疑!

function runCode(obj) {

var winname = window.open('', "_blank", '');

winname.document.open('text/html', 'replace');

winname.opener = null // 防止代码对父页面修改

winname.document.write(obj.value);

winname.document.close();

}

function saveCode(obj) {

var winname = window.open('', '_blank', 'top=10000');

winname.document.open('text/html', 'replace');

winname.document.write(obj.value);

winname.document.execCommand('saveas','','code.htm');

winname.close();

}

function oCopy(obj){

obj.select();

js=obj.createTextRange();

js.execCommand("Copy");

alert("另存为");

}

您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。

如何在CHROME中实现用JS 弹出一个IE的窗口?

1、首先你要切好与IE窗口相似的图片

2、然后写好模仿的IE窗口的静态页面html代码,最后写好后用样式 display:none 把它隐藏起来

3、开始写JS代码

4、JS代码流程:

a、点击一个html元素触发onclick点击事件进行监听。

b、点击事件绑定一个函数,该函数是把这个隐藏的窗口显示出来,获取的窗口元素.style.display=none;即可。

ps:最后你在这个窗口还有什么功能都陆续加上去。我已经回答了你所提出问题的字面意思。就是弹出一个IE窗口

JS复制剪切板代码在Chrome下无效,请告诉一下合适的代码。

代码如下:

很多页面都是禁止copy的,那么通过浏览器事件,是不是可以访问到粘贴板?查了下资料,IE/Chrome/Firefox都支持oncopy/onpaste/oncut事件,虽然不是在所有元素上都支持。但是这里通过事件的event应该可以访问到用户复制了什么内容,并修改Data。动手实验了下,通过console.debug查看chrome和firefox的event对象,会发现event里面有一个clipboardData对象,所以后面的事情就不难了。看如下Firefox的截图就知道了:

参考资料

实现JS复制、粘贴,Chrome/Firefox下可用.csdn[引用时间2018-1-3]

谷歌浏览器 怎么用js复制东西到剪贴板

代码如下:

JS复制内容到剪贴板: 兼容IE、Firefox、Chrome、Safari所有浏览器

function copyToClipboard(txt) {

if(window.clipboardData)

{

window.clipboardData.clearData();

window.clipboardData.setData("Text",txt);

alert("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")

}

else if(navigator.userAgent.indexOf("Opera") != -1)

{

window.location = txt;

alert("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")

}

else if (window.netscape)

{

try {

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

}

catch (e)

{

alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");

}

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 = txt;

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("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")

}

}

copyToClipboard('ABCD')

这些代码都是一样的,不存在原创与复制

JS怎么实现在chrome中复制到剪贴板

Chrome原生支持window的copy方法

window.copy("this is a test string");

这样,就把“this is a test string”复制到了剪贴板中

不过要注意,该方法的跨平台性不强,低版本的IE可能不支持

js怎么实现将截图,或者复制的图片用ctrl+v

原理分析

提取操作:复制=粘贴=上传

在这个操作过程中,我们需要做的就是:监听粘贴事件=获取剪贴板里的内容=发请求上传

为方便理解下文,需要先明白几点:

我们只能上传网页图(在网页上右键图片,然后复制)和截图(截图工具截的图片,eg:qq截图),不能粘贴上传系统里的图片(从桌面上、硬盘里复制),他们是存在完全不同的地方的。 截图工具截的图与在网页点击右键复制的图是有些不同的,因此处理方式也不一样。 知悉paste event这个事件:当进行粘贴(右键paste/ctrl+v)操作时,该动作将触发名为'paste'的剪贴板事件,这个事件的触发是在剪贴板里的数据插入到目标元素之前。如果目标元素(光标所在位置)是可编辑的元素(eg:设置了contenteditable属性的div。textarea并不行。),粘贴动作将把剪贴板里的数据,以最合适的格式,插入到目标元素里;如果目标元素不可编辑,则不会插入数据,但依然触发paste event。数据在粘贴的过程中是只读的。此段是翻译于w3.org_the-paste-action。 可惜的是,经过试验,发现chrome(当前最新版)、firefox(当前最新版)、ie11对paste事件的实现并不是完全按照w3c来的,各自也有区别(w3c的paste标准也因此只是草案阶段)。

test代码如下:

chrome:

textarea /textarea div contenteditable style="width: 100px;height: 100px; border:1px solid" /div script document.addEventListener('paste', function (event) { console.log(event) }) /script

event有clipboardData属性,且clipboardData有item属性,clipboardData.item中的元素(对象)有type和kind属性; 无论在哪进行粘贴,均可触发paste事件; 在div(未特殊声明时,本文div均指设置了contenteditable属性的div) 里粘贴截图,不显示图片。img.src为base64编码字符串; 在div里粘贴网页图片,直接显示图片,img.src为图片地址。

firefox:

event有clipboardData属性,clipboardData没有item属性; 只有在textarea里或者可编辑的div(里才粘贴才触发paste事件; 在div里粘贴截图,直接显示图片,img.src为base64编码字符串; 在div里粘贴网页图片,表现同chrome。

ie11:(不截图了,可自行试验,其他浏览器同理( ̄▽ ̄)/,因为懒...)

event没有clipboardData属性; 只在可编辑的div中粘贴才触发paste事件; 在div里粘贴截图,直接显示图片,img.src为base64编码字符串; 在div里粘贴网页图片,表现同chrome。

监听了paste事件,也知道了表现形式,接下来就是如何获取数据了:

chrome有特定的方法,利用clipboardData.items、getAsFile()、new FileReader()等api可以在paste回调函数里获取到剪贴板里图片的base64编码字符串(无论是截图粘贴的还是网页图片复制粘贴的),ie11,firefox没有这样的api,不过依然有办法可以获取,因为数据已经表现在img的src里了,对于截图粘贴的,直接取img的src属性值(base64),对于网页粘贴的,则把地址传给后台,然后根据地址down下来,存在自己的服务器,最后把新地址返回来交给前端展示就ok了。为了保持一致性便于管理,统一将所有情况(截图、网页)中的img的src属性替换为自己存储的地址。因此可以得到以下核心代码(注释很全哦~~):

html展示:

head meta charset="UTF-8" titleDocument/title style body { display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; } #tar_box { width: 500px; height: 500px; border: 1px solid red; } /style

前端js处理逻辑:

document.addEventListener('paste', function (event) { console.log(event) var isChrome = false; if ( event.clipboardData || event.originalEvent ) { //not for ie11 某些chrome版本使用的是event.originalEvent var clipboardData = (event.clipboardData || event.originalEvent.clipboardData); if ( clipboardData.items ) { // for chrome var items = clipboardData.items, len = items.length, blob = null; isChrome = true; //items.length比较有意思,初步判断是根据mime类型来的,即有几种mime类型,长度就是几(待验证) //如果粘贴纯文本,那么len=1,如果粘贴网页图片,len=2, items[0].type = 'text/plain', items[1].type = 'image/*' //如果使用截图工具粘贴图片,len=1, items[0].type = 'image/png' //如果粘贴纯文本+HTML,len=2, items[0].type = 'text/plain', items[1].type = 'text/html' // console.log('len:' + len); // console.log(items[0]); // console.log(items[1]); // console.log( 'items[0] kind:', items[0].kind ); // console.log( 'items[0] MIME type:', items[0].type ); // console.log( 'items[1] kind:', items[1].kind ); // console.log( 'items[1] MIME type:', items[1].type ); //阻止默认行为即不让剪贴板内容在div中显示出来 event.preventDefault(); //在items里找粘贴的image,据上面分析,需要循环 for (var i = 0; i len; i++) { if (items[i].type.indexOf("image") !== -1) { // console.log(items[i]); // console.log( typeof (items[i])); //getAsFile() 此方法只是living standard firefox ie11 并不支持 blob = items[i].getAsFile(); } } if ( blob !== null ) { var reader = new FileReader(); reader.onload = function (event) { // event.target.result 即为图片的Base64编码字符串 var base64_str = event.target.result //可以在这里写上传逻辑 直接将base64编码的字符串上传(可以尝试传入blob对象,看看后台程序能否解析) uploadImgFromPaste(base64_str, 'paste', isChrome); } reader.readAsDataURL(blob); } } else { //for firefox setTimeout(function () { //设置setTimeout的原因是为了保证图片先插入到div里,然后去获取值 var imgList = document.querySelectorAll('#tar_box img'), len = imgList.length, src_str = '', i; for ( i = 0; i len; i ++ ) { if ( imgList[i].className !== 'my_img' ) { //如果是截图那么src_str就是base64 如果是复制的其他网页图片那么src_str就是此图片在别人服务器的地址 src_str = imgList[i].src; } } uploadImgFromPaste(src_str, 'paste', isChrome); }, 1); } } else { //for ie11 setTimeout(function () { var imgList = document.querySelectorAll('#tar_box img'), len = imgList.length, src_str = '', i; for ( i = 0; i len; i ++ ) { if ( imgList[i].className !== 'my_img' ) { src_str = imgList[i].src; } } uploadImgFromPaste(src_str, 'paste', isChrome); }, 1); } }) function uploadImgFromPaste (file, type, isChrome) { var formData = new FormData(); formData.append('image', file); formData.append('submission-type', type); var xhr = new XMLHttpRequest(); xhr.open('POST', '/upload_image_by_paste'); xhr.onload = function () { if ( xhr.readyState === 4 ) { if ( xhr.status === 200 ) { var data = JSON.parse( xhr.responseText ), tarBox = document.getElementById('tar_box'); if ( isChrome ) { var img = document.createElement('img'); img.className = 'my_img'; img.src = data.store_path; tarBox.appendChild(img); } else { var imgList = document.querySelectorAll('#tar_box img'), len = imgList.length, i; for ( i = 0; i len; i ++) { if ( imgList[i].className !== 'my_img' ) { imgList[i].className = 'my_img'; imgList[i].src = data.store_path; } } } } else { console.log( xhr.statusText ); } }; }; xhr.onerror = function (e) { console.log( xhr.statusText ); } xhr.send(formData); }

用express.js搭的简易后台的接收逻辑:

router.post('/', upload.array(), function (req, res, next) { //1.获取客户端传来的src_str字符串=判断是base64还是普通地址=获取图片类型后缀(jpg/png etc) //=如果是base64替换掉"前缀"("data:image\/png;base64," etc) //2.base64 转为 buffer对象 普通地址则先down下来 //3.写入硬盘(后续可以将地址存入数据库) //4.返回picture地址 var src_str = req.body.image, timestamp = new Date().getTime(); if ( src_str.match(/^data:image\/png;base64,|^data:image\/jpg;base64,|^data:image\/jpg;base64,|^data:image\/bmp;base64,/) ) { //处理截图 src_str为base64字符串 var pic_suffix = src_str.split(';',1)[0].split('/',2)[1], base64 = src_str.replace(/^data:image\/png;base64,|^data:image\/jpg;base64,|^data:image\/jpg;base64,|^data:image\/bmp;base64,/, ''), buf = new Buffer(base64, 'base64'), store_path = 'public/images/test_' + timestamp + '.' + pic_suffix; fs.writeFile(store_path, buf, function (err) { if (err) { throw err; } else { res.json({'store_path': store_path}); } }); } else {// 处理非chrome的网页图片 src_str为图片地址 var temp_array = src_str.split('.'), pic_suffix = temp_array[temp_array.length - 1], store_path = 'public/images/test_' + timestamp + '.' + pic_suffix, wstream = fs.createWriteStream(store_path); request(src_str).pipe(wstream); wstream.on('finish', function (err) { if( err ) { throw err; } else { res.json({"store_path": store_path}); } }); } });

需要node环境:安装node=npm intall=node app.js)

js复制chrome和ie,chrome复制粘贴插件

本文目录一览: 1、求可以兼容火狐,chrome和ie浏览器的另存为网页js代码 2、如何在CHROME中实现用JS 弹出一个IE的窗口? 3、JS复制剪切板代码在Chrome下无效,请告诉一下合适的

2023-12-08
剪贴板js代码(js复制到剪切板代码)

本文目录一览: 1、js将内容放到剪贴板怎么写呢? 2、JS复制剪切板代码在Chrome下无效,请告诉一下合适的代码。 3、JS自动复制内容到剪贴板 4、请教PHP传值到JS 的代码,实现复制到剪贴板

2023-12-08
禁止复制代码js,禁止非法复制

2022-11-23
chrome如何加载js,chrome如何加载插件

本文目录一览: 1、chrome 怎么获取js文件 2、chrome 如何调试js 3、如何使用 Chrome 浏览器调试动态加载的 Javascript 脚本 4、如何在谷歌浏览器中启用JavaSc

2023-12-08
如何复制网站上不能被复制的内容

2023-05-20
js实现复制,js一键复制代码

2023-01-09
js添加chrome(js添加节点)

本文目录一览: 1、怎么在Google Chrome 浏览器上启用 Javascript 功能 2、在chrome浏览器下实现加入收藏夹的javascript代码该咋写? 3、node.js是什么东西

2023-12-08
一键复制js代码,简单的代码复制

本文目录一览: 1、如何在页面加载后调用js的代码自动复制一段文字 2、JS代码一键复制 问题请教! 3、怎么把JS代码放到我的网页上? 4、html 多选框 如何用js 控制全选 并且一键复制选中的

2023-12-08
cad无法复制到粘贴版,cad复制了无法粘贴

2022-11-30
VueCopy——一个实现Vue组件复制和粘贴的插件

2023-05-18
cad复制粘贴很卡,CAD复制特别卡

2022-11-28
cad粘贴卡,CAD复制粘贴卡

2022-11-29
cad粘贴卡顿,cad2013复制粘贴很卡怎么解决

2022-11-30
js驱动chrome(JS驱动电源)

本文目录一览: 1、如何用python写chrome插件 2、如何在chrome运行js代码 3、Chrome 对 JS 的支持似乎不是很好,为什么有些 JS 脚本执行不了 4、chrome浏览器怎么

2023-12-08
js复制内容到剪贴板代码(全部内容复制到剪贴板中)

本文目录一览: 1、JavaScript如何点击实现复制文字到剪切板 2、如何自动选定一个网页显示的全部内容到复制到剪贴板中? 3、如何用JS操作粘贴板 JavaScript如何点击实现复制文字到剪切

2023-12-08
js禁止复制代码(js禁止复制文字)

本文目录一览: 1、网页禁止复制怎么办 2、MetInfo 怎么设置JS禁止复制? 3、怎么使用JS禁止复制粘贴 4、手机页面 如何 用js 禁止 拷贝文字? 网页禁止复制怎么办 在网页上查询数据经常

2023-12-08
java文件复制,java文件复制粘贴

2023-01-09
JS复制到剪贴板

2023-05-22
javascript操作剪贴板的简单介绍

2022-11-11
cad无法复制到粘贴板,cad无法复制到粘贴板这么回事

2022-11-26