国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS 巧妙獲取剪貼板數(shù)據(jù) Excel數(shù)據(jù)的粘貼

2019-11-21 01:16:57
字體:
來源:轉載
供稿:網(wǎng)友
另外的方法就是用flash了,它可以避開瀏覽器的安全限制,但是system類中只有set的方法,另外的clipboard類中倒是能訪問到,但是似乎需要flash10的版本支持。

網(wǎng)上找了一圈,沒啥發(fā)現(xiàn)。終于想到去看看google sheet是怎么干的。
發(fā)現(xiàn)google sheet實現(xiàn)了excel的純文本的多數(shù)據(jù)格粘貼,沒有安全限制的需要,沒有使用flash??赡芎芏嗳硕贾肋@種方法了,反正我一開始很驚訝的,但是無奈,google的js文件是處理過的,看起來太累了。然后又去找ZOHO sheet,它的js文件只簡單處理了一下,能debug,能看。
原來,其在body上注冊了onkeydown事件,當用戶按下ctrl+v鍵的時候,js將焦點轉移到一個textarea標簽上,這樣,接下來的keyPress和keyUp事件就發(fā)生在textarea上了,自然而然的就相當于用戶在textarea中復制了一下,然后,js再將焦點轉移,從textarea中將值取到。這樣就取到了剪貼板內(nèi)文本數(shù)據(jù)了。
下面是一個模仿ZOHO sheet實現(xiàn)的小例子。
復制代碼 代碼如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script type="text/javascript"><!--
    function cellkeydown(event) {
        if (event.ctrlKey && event.keyCode == 86) {
            var ss = document.getElementById("textArea");
            ss.focus();
            ss.select();
            // 等50毫秒,keyPress事件發(fā)生了再去處理數(shù)據(jù)
            setTimeout("dealwithData()",50);
        }    
    }
    function dealwithData(event) {
            var ss = document.getElementById("textArea");
            alert(ss.value);
            ss.blur();
    }
// --></script>
</head>
<body onkeydown="return cellkeydown(event)">
<div>
    <textarea id="textArea">

獲得的Excel的文本數(shù)據(jù),按照/t,/n就可以分割得到格子和行信息了。但這樣只能得到簡單的純文本的excel值,格子的樣式都弄不到。但我發(fā)現(xiàn)一個方法,當向iframe的document中復制的時候(就是在線編輯器的實現(xiàn)方式),這樣能出現(xiàn)一些樣式信息,IE中特別全,估計是因為自己家的產(chǎn)品自己能解析的緣故,F(xiàn)F和Chrome就只能得到行號列寬等一些簡單的屬性。不知道誰有方法能得到比較全的信息。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湟源县| 葵青区| 甘谷县| 勃利县| 都安| 北海市| 靖安县| 廉江市| 沁源县| 西林县| 潞西市| 惠来县| 花垣县| 洪湖市| 凤庆县| 什邡市| 余干县| 浑源县| 隆子县| 温州市| 报价| 封丘县| 永昌县| 陇西县| 华安县| 文昌市| 衡东县| 招远市| 电白县| 庆云县| 平江县| 扬州市| 桦南县| 仲巴县| 安阳市| 武威市| 太白县| 依兰县| 胶南市| 徐州市| 宁阳县|