2017-03-06 3 views
0

ユーザーが 'x'を押すと、チャットのあるiframeウィンドウが開くようにしたいと思います。 xをもう一度押すと閉じます。ユーザーがキーを押した場合にiframeを開くにはどうすればよいですか?

現在のコード:

<div id="mydiv"> 
    <iframe name ="frame" src="" width="25%" height="300"></iframe> 
</div> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script>$(document).ready(function() { 
$(document).keypress(function(e) { 
    var keycode = e.which; 
    if (e.which == 192) { 
     var src = $("#frame").attr("src"); 
     if(!src.trim()) { 
     $("#frame").attr("src","http://deadsimplechat.com/+f8ckA/"); 
     } 
     else { 
     $("#frame").attr("src",""); 
     } 
    } 
}); 
});</script> 

答えて

0
function checkKey(e) { 
    e = e || window.event; 
    if(e.keyCode == 88) { // x pressed 
     if(myWindow) { 
      myWindow.close(); 
      myWindow = undefined; 
     } else { 
      myWindow = window.open("", "", "width=200,height=100"); 
     } 
    } 
} 

var myWindow; 

document.onkeydown = checkKey; 

このようなものを使用してください。

+0

私はそれを開いたときに機能しますが、もう一度キーを押して閉じると何も起こりません。しかし、キーをもう一度押すと(最初に閉じようとすると)、iframeウィンドウが更新されます。 – abc12333333

+0

メインウィンドウにフォーカスを当ててXをもう一度押します。あなたのメインウィンドウは、子ウィンドウではなく、「X」をリスンしています – mehulmpt

0
$(document).ready(function() { 
$(document).keypress(function(e) { 
    var keycode = e.which; 
    if (e.which == 49) { 
     var src = $("#frame").attr("src"); 
     if(!src.trim()) { 
     $("#frame").attr("src","https://www.example.com/"); 
     } 
     else { 
     $("#frame").attr("src",""); 
     } 
    } 
}); 
}); 

by finding the proper keycodeのキーコードを編集できます。 あなたのコードにこのようなiframeがあると思われるか、create iframe from jqueryとすることができます。 remove the ifram from jqueryも可能です。また、適切なサイトのサンプルソースURLを編集します。

<div id="mydiv"> 
    <iframe id="frame" src="" width="100%" height="300"></iframe> 
</div> 

jqueryを使用するときはいつでも、ライブラリを含める必要があります。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

EDIT これは、作業する必要があります。

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script> 
     $(document).ready(function() { 
     $(document).keypress(function(e) { 
      var keycode = e.which; 
      if (e.which == 49) { 
       var src = $("#frame").attr("src"); 
       if(!src.trim()) { 
       $("#frame").attr("src","https://www.w3schools.com/"); 
       } 
       else { 
       $("#frame").attr("src",""); 
       } 
      } 
     }); 
     }); 
    </script> 
    </head> 
    <body> 
     <div id="mydiv"> 
      <iframe id="frame" src="" width="100%" height="300"></iframe> 
     </div> 
     <input type="text"> 
    </body> 
</html> 
+0

答えには、答えのどこにも記載されていないjqueryライブラリを使用する必要があります。 –

+0

全く動作しません。理由は不明です。 – abc12333333

+0

コンソールにエラーはありません。コード付きの元の投稿を編集しました。 – abc12333333

関連する問題