2016-07-22 11 views
0

私はJavaScriptにはまったく新しく、ウィンドウオブジェクトについて学ぶだけです。 私は矢印キーの1つが押されたときにブラウザウィンドウをある方向に10ピクセル動かす簡単なスクリプトを作ろうとしています。JavaScript - window.moveByが動作しない

イベントハンドラが機能し、キーコードが正しいこと、moveScreen()関数が実行されていること、条件内の条件も機能していることを確認しました。 なぜ、画面が動かないのですか? これまでFirefoxとChromeでテストしました。

function moveScreen(direction) { 
    'use strict'; 

    if (direction === 'up') window.moveBy(0, -10); 
    if (direction === 'right') window.moveBy(10, 0); 
    if (direction === 'down') window.moveBy(0, 10); 
    if (direction === 'left') window.moveBy(-10, 0); 
} 


function handleKeyDown(e) { 
    'use strict'; 

    e = e || window.event; 
    const key = e.keyCode; 

    switch (key) { 
     case 38: 
      moveScreen('up'); 
      break; 
     case 39: 
      moveScreen('right'); 
      break; 
     case 40: 
      moveScreen('down'); 
      break; 
     case 37: 
      moveScreen('left'); 
      break; 
    } 
} 


window.onload = function() { 
    'use strict'; 
    document.onkeydown = handleKeyDown; 
} 

これは、HTMLファイルで、それは単に身体のスクリプトが含まれています

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title></title> 
</head> 
<body> 
    <script src="moveWindow.js"></script> 
</body> 
</html> 
+3

自分で開いたポップアップウィンドウは、別のページからのみ移動できます。 – JJJ

答えて

1

あなたがここにMDNのMoveByメソッドの記述MDN moveByを見れば、あなたが何をしようとしていることであることがわかりますおそらく不可能です。ウェブサイトは、ブラウザでウィンドウを移動するため

Firefoxの7ので、それは次の規則に従って、ことはできなくなりました:

  1. あなたは「wasnウィンドウやタブを移動することはできませんtはwindow.openによって作成されます。
  2. 複数のタブがあるウィンドウ内にあるときは、ウィンドウやタブを移動できません。
0

単純な答え: 「あなたは別のページに自分で作成していないウィンドウを移動することはできません。」

ありがとうございます。

だから私は仕事にこれを取得するために見つけた最も簡単な方法は、ブラウザでコンソールを開いて、そこにHTMLファイルを開くことです。それは新しいタブを開いた場合

window.open('moveWindow.html') 

、単にクリックしてドラッグすでに開いていたものから離れたウィンドウのタイトル、ドキュメントをフォーカスして、あなたはすべていいです。

関連する問題