SpreadJSを使用すると標準のCtrl+Shift+V押下イベントが発生しない

文書番号 : 40130     文書種別 : 不具合     登録日 : 2017/03/10     最終更新日 : 2017/03/29
文書を印刷する
対象製品
SpreadJS 9J
発生環境
9.20161.0
Internet Explorer
状況
修正済み
詳細
SpreadJSを参照すると標準のCtrl+Shift+V押下イベントが発生しなくなります。

【再現方法】
1.下記の再現コードを実行します

【動作結果】
Ctrl+Shift+Vを押下してもイベントが発生しません。

【再現コード】
<!DOCTYPE html>
<html>
  <head>
    <title>SpreadJS Sample</title>
    <meta charset="utf-8" />

    <script>
</script>

    <!-- SpreadJS CSS、Libraries -->
    <link type="text/css" href="http://cdn.grapecity.com/spreadjs/9201610/css/gc.spread.sheets.excel2013white.9.20161.0.css" rel="stylesheet"/>
    <script type="text/javascript" src="http://cdn.grapecity.com/spreadjs/9201610/scripts/gc.spread.sheets.all.9.20161.0.min.js"></script>

    <!-- SpreadJS JP locale, resource -->
    <meta name="spreadjs culture" content="ja-jp" />
    <script src='http://cdn.grapecity.com/spreadjs/9201610/scripts/resources/ja/gc.spread.sheets.resources.ja.9.20161.0.min.js' type='text/javascript'></script>
    
    <!-- Logic codes -->
<script>
window.onload = function(){
   var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
   var sheet = spread.getActiveSheet();
};

window.addEventListener("keydown", function (e) {
   if (e.keyCode == 86 && e.ctrlKey == true && e.shiftKey == true) {
try {
   console.log("ctrl+shift+v が押下されました");
} catch (ex) {
   console.log(ex);
}
   }
}, true);
</script>
  </head>
  
  <body style="font:9pt normal MS Gothic">
    <!-- SpreadJS マークアップ -->
    <div id="ss" class="spreadjs"></div>
  </body>
</html>

回避方法
SpreadJS 9J SP2(Ver.9.20171.0)で修正済み
SpreadJS 9J SP2(Ver.9.20171.0)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

SpreadJSライブラリの参照より先にイベント処理を定義することで、現象の回避が可能です。

【再現コードへの回避方法適用例】
<!DOCTYPE html>
<html>
  <head>
    <title>SpreadJS Sample</title>
    <meta charset="utf-8" />

<script>
     // キーイベント処理をSpreadJSライブラリの参照より先に定義します
window.addEventListener("keydown", function (e) {
   if (e.keyCode == 86 && e.ctrlKey == true && e.shiftKey == true) {
try {
   console.log("ctrl+shift+v が押下されました");
} catch (ex) {
   console.log(ex);
}
   }
}, true);
</script>

    <!-- SpreadJS CSS、Libraries -->
    <link type="text/css" href="http://cdn.grapecity.com/spreadjs/9201610/css/gc.spread.sheets.excel2013white.9.20161.0.css" rel="stylesheet"/>
    <script type="text/javascript" src="http://cdn.grapecity.com/spreadjs/9201610/scripts/gc.spread.sheets.all.9.20161.0.min.js"></script>

    <!-- SpreadJS JP locale, resource -->
    <meta name="spreadjs culture" content="ja-jp" />
    <script src='http://cdn.grapecity.com/spreadjs/9201610/scripts/resources/ja/gc.spread.sheets.resources.ja.9.20161.0.min.js' type='text/javascript'></script>
    
    <!-- Logic codes -->
<script>
window.onload = function(){
   var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
   var sheet = spread.getActiveSheet();
};
</script>
  </head>
  
  <body style="font:9pt normal MS Gothic">
    <!-- SpreadJS マークアップ -->
    <div id="ss" class="spreadjs"></div>
  </body>
</html>