網(wǎng)上找了一圈,沒啥發(fā)現(xiàn)。終于想到去看看google sheet是怎么干的。 " /> 久久精品一级爱片,国产午夜精品在线观看,欧美精品与人动性物交免费看

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

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

另外的方法就是用flash了,它可以避開瀏覽器的安全限制,但是system類中只有set的方法,另外的clipboard類中倒是能訪問(wèn)到,但是似乎需要flash10的版本支持。

網(wǎng)上找了一圈,沒啥發(fā)現(xiàn)。終于想到去看看google sheet是怎么干的。
發(fā)現(xiàn)google sheet實(shí)現(xiàn)了excel的純文本的多數(shù)據(jù)格粘貼,沒有安全限制的需要,沒有使用flash。可能很多人都知道這種方法了,反正我一開始很驚訝的,但是無(wú)奈,google的js文件是處理過(guò)的,看起來(lái)太累了。然后又去找ZOHO sheet,它的js文件只簡(jiǎn)單處理了一下,能debug,能看。
原來(lái),其在body上注冊(cè)了onkeydown事件,當(dāng)用戶按下ctrl+v鍵的時(shí)候,js將焦點(diǎn)轉(zhuǎn)移到一個(gè)textarea標(biāo)簽上,這樣,接下來(lái)的keyPress和keyUp事件就發(fā)生在textarea上了,自然而然的就相當(dāng)于用戶在textarea中復(fù)制了一下,然后,js再將焦點(diǎn)轉(zhuǎn)移,從textarea中將值取到。這樣就取到了剪貼板內(nèi)文本數(shù)據(jù)了。
下面是一個(gè)模仿ZOHO sheet實(shí)現(xiàn)的小例子。
復(fù)制代碼 代碼如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無(wú)標(biāo)題文檔</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就可以分割得到格子和行信息了。但這樣只能得到簡(jiǎn)單的純文本的excel值,格子的樣式都弄不到。但我發(fā)現(xiàn)一個(gè)方法,當(dāng)向iframe的document中復(fù)制的時(shí)候(就是在線編輯器的實(shí)現(xiàn)方式),這樣能出現(xiàn)一些樣式信息,IE中特別全,估計(jì)是因?yàn)樽约杭业漠a(chǎn)品自己能解析的緣故,F(xiàn)F和Chrome就只能得到行號(hào)列寬等一些簡(jiǎn)單的屬性。不知道誰(shuí)有方法能得到比較全的信息。

JavaScript技術(shù)JS 巧妙獲取剪貼板數(shù)據(jù) Excel數(shù)據(jù)的粘貼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 东兴市| 尤溪县| 西宁市| 容城县| 中方县| 奉新县| 德惠市| 大石桥市| 台南市| 临沂市| 阿拉尔市| 崇左市| 岗巴县| 平武县| 临西县| 孟州市| 永泰县| 合川市| 陵水| 瑞丽市| 青神县| 甘泉县| 子长县| 天津市| 南漳县| 安仁县| 西和县| 阜新市| 贵德县| 孟津县| 鸡泽县| 博乐市| 嘉黎县| 巴彦县| 新乡市| 惠东县| 尚义县| 财经| 西城区| 翁牛特旗| 汉沽区|