IEで「alt+←」で「前に戻る」という動作を禁止
したいのですが何か良い方法はないでしょうか?

詳細として以下の条件を満たしたいのです。
1「alt+←」押下時に何事もなかったかのように無視する
 (alertなどは出さない。)
2「alt+(矢印キー以外)」の場合は正常に動作する。

※ただし2を満たすことは固執していません。
 せめて1さえできれば・・・(TT)

あと、ブラウザはIE5以上のみ対応できていれば結構です

過去に同じ質問があったようなのですが、解決策が
投稿されていませんでした。時が経ったいまであれば
何か解決策も見つかっているのではと思いまして・・・
なにとぞよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

下記のURLのようにALTボタンのkeycodeを拾って条件分岐すれば無効に


出来るかと思います。

ちなみにALTボタンのkeycodeは18です。


http://www.openspc2.org/reibun/JavaScript_techni …
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qjavascriptエラーの解決策について

かなりの初心者で他のサイトのソースを借りて改変しています。
どうしても「オブジェクトでサポートされていないプロパティまたはメソッドです」というエラーが消えません。
出来れば具体的な対応策をご教授いただけましたら幸いです。

var startX;
var moveX;
var diffX = 0;
var link_value='';
var adstartY;
var admoveY;
$(function() {
var box = $("#menu-ul")[0];
var touchHandler = getTouchHandler();

box.addEventListener("tmove", touchHandler, false);
box.addEventListener("tcst", touchHandler, false);
box.addEventListener("tchend", touchHandler, false);
document.addEventListener("tmove", getTouchHandlerdoc(), false);
document.addEventListener("tcst",getTouchHandlerdoc(), false);
document.addEventListener("tchend", getTouchHandlerdoc(), false);
$("#item0")[0].addEventListener("tcst", getTouchHandlera('0'), false);
$("#item1")[0].addEventListener("tcst", getTouchHandlera('1'), false);
$("#item2")[0].addEventListener("tcst", getTouchHandlera('2'), false);
$("#item3")[0].addEventListener("tcst", getTouchHandlera('3'), false);
$("#item4")[0].addEventListener("tcst", getTouchHandlera('4'), false);
$("#item5")[0].addEventListener("tcst", getTouchHandlera('5'), false);
$("#item6")[0].addEventListener("tcst", getTouchHandlera('6'), false);
/*
$("#item9")[0].addEventListener("tcst", getTouchHandlera('9'), false);
*/
$("#menu-prev-btn")[0].addEventListener("tcst", getTouchHandlerb('prev'), false);
$("#menu-next-btn")[0].addEventListener("tcst", getTouchHandlerb('next'), false);
$("#menu-prev-btn")[0].addEventListener("tchend", getTouchHandlerb('prev'), false);
$("#menu-next-btn")[0].addEventListener("tchend", getTouchHandlerb('next'), false);
});
function getTouchHandlerdoc() { return function(e) {
if (e.type == "tcst") {
$('#footer_ad').hide();
$('#footer_ad').stop();
adstartY = touch.pageY;
} else if (e.type == "tmove") {
admoveY = touch.pageY - adstartY;
if ((admoveY < 20) && (admoveY > -20)){
$('#footer_ad').css('position','absolute');
$('#footer_ad').css('top',document.body.clientHeight + 'px');
}
} else if (e.type == "tchend") {
$('#footer_ad').show();
}
}}

function getTouchHandlerb(param) { return function(e) {
e.preventDefault();
if (e.type == "tcst") {
link_value = param;
if(param == "prev"){
timer_prev();
}else if(link_value == "next"){
timer_next();
}
} else if (e.type == "tchend") {
}
}}
function getTouchHandlera(param) { return function(e) {
//e.preventDefault();
if (e.type == "tcst") {
link_value = $('#item'+param+' a').attr('href');
}
}}
function getTouchHandler() {
var sTime = 0;
var moveX = 0;
return function(e) {
//e.preventDefault();
var touch = e.touches[0];
if (e.type == "tcst") {
startX = touch.pageX;
moveX = 0;
startX = startX - diffX;
sTime = (new Date()).getTime();
} else if (e.type == "tmove") {
//e.preventDefault();
diffX = touch.pageX - startX;
moveX = diffX;
if (diffX > 0){ diffX = 0; }
if (diffX < -320){ diffX = -320; }
$("#menu-ul").css("left", diffX + "px");
//$("#menu-ul").animate({left:diffX + 'px'},10);
} else if (e.type == "tchend") {
//e.preventDefault();
var t = (new Date()).getTime() - sTime;
if ((moveX < 10) && (moveX > -10)){
location.href=link_value;
}
}
}
}
$(window).scroll(function () {
var win = window.innerHeight;
var offsettop = $("#page").offset().top;
var offsettop = window.pageYOffset;
var adposition = offsettop + win - 50;
var adstartposition = offsettop + win + 60;
$('#footer_ad').css('position','absolute');
$('#footer_ad').css('top',adstartposition);
$("#footer_ad").animate({top:adposition + 'px'},500)
});
window.onorientationchange = function() {
var win_width = $(window).width();
$('#menu-frame').css('width',(win_width - 54) + 'px');
$('#menu-frame').css('overflow','hidden');
}
$(document).ready(function () {
var win_width = $(window).width();
$('#menu-frame').css('width'

かなりの初心者で他のサイトのソースを借りて改変しています。
どうしても「オブジェクトでサポートされていないプロパティまたはメソッドです」というエラーが消えません。
出来れば具体的な対応策をご教授いただけましたら幸いです。

var startX;
var moveX;
var diffX = 0;
var link_value='';
var adstartY;
var admoveY;
$(function() {
var box = $("#menu-ul")[0];
var touchHandler = getTouchHandler();

box.addEventListener("tmove", touchHandler, false);
box.addEventListener("tcst", touchHandl...続きを読む

Aベストアンサー

具体的も何も、足し算ができない人に円の面積の求め方を教えるのは無理です。
(教えるくらいなら自分でやった方が早いです。)
たぶんこれっぽい気はしますが。。。
http://www.google.com/?q=jquery#q=jquery


FirefoxもChromeも、「エラーは出ないが動かない」ではないですかね?
IEはエラーが出てくれるので「動かないこと」が、わかりやすいかもしれませんが。

"tcst"や"tmove"という書き方をどこで見つけられたのか、教えてもらっていいですか?
特殊な書き方をしているからには、それ相応の特殊なライブラリなんかを使っていると思うので、
そういうものの作り方に、非常に興味があります。
(もちろん私が知らない標準規格かもしれませんので、それはそれで勉強になりますから。)

QキーコードなどでAlt+○を認識してイベントを発生させるには?

キーコードなどでAlt+○を認識してイベントを発生させるにはどうしたらよいのでしょうか?ひとつのキーでならできたのですが複数のキーを組み合わせることができませんでした。参考までにうまくいかなかったプログラムの関数部分を記述しておきます。このプログラムだと一回目はうまくいくのですが二回目になるとsキーを押すだけで実行されてしまいます。

document.onkeydown=keyDown;

function keyDown()
{
keynum1=event.keyCode;
if(keynum1==18)//この番号がキーに対応してる(Altキー)
{
document.onkeydown=pressEnter;
}
}
function pressEnter()
{
keynum2=event.keyCode;
if(keynum2==83)//この番号がキーに対応してる(sキー)
{
document.write("キーコード");
}
}

キーコードなどでAlt+○を認識してイベントを発生させるにはどうしたらよいのでしょうか?ひとつのキーでならできたのですが複数のキーを組み合わせることができませんでした。参考までにうまくいかなかったプログラムの関数部分を記述しておきます。このプログラムだと一回目はうまくいくのですが二回目になるとsキーを押すだけで実行されてしまいます。

document.onkeydown=keyDown;

function keyDown()
{
keynum1=event.keyCode;
if(keynum1==18)//この番号がキーに対応してる(Altキー)
{ ...続きを読む

Aベストアンサー

document.onkeydown=keyDown;
document.onkeyup=keyUp;

var CHK=new Array();
CHK[0]=0;
CHK[1]=0;

function keyDown(){
if(event.keyCode==18){CHK[0]=1;}
if(event.keyCode==83){CHK[1]=1;}
if(CHK[1]==1 && CHK[0]==1){ document.write("キーコード"); }
}
function keyUp(){
if(event.keyCode==18){CHK[0]=0;}
if(event.keyCode==83){CHK[1]=0;}
}


これでいいんじゃないですか?

QJavaScriptでのEnterキーとAlt+Enterキー制御について

Web画面で入力するシステムを構築しています。
利用者が入力する際、使いやすくするためという要望があり、現在「Enterキー」を押下するとそのキーコードをトラップし、TABに変換して次項目へ移動させるという処理をJavaScriptで行っています。
ここで、Web画面の項目に「TEXTAREA」があり、その項目中で入力し改行したいと思っても上記JavaScriptが効いてしまって次項目へ飛んでしまいます。
そこで「Alt+Enter」を押すとTEXTAREA内で改行するという処理を作り込みたいのですが、やり方がわかりません。(ただし、Altでなくても可。要はEnterを押すと次項目へ移動し、何か特別なことをするとTEXTAREA内で改行できればOK。)
「Alt+Enter」時のキーコードや具体的なやり方を紹介していただけないでしょうか?

以上、よろしくお願いします。

Aベストアンサー

#1です、実際に試してみたのですが、、
ALTキーの場合、ブラウザがショートカットキーとして横取りするみたいなので、うまくいかないですね。
そこで、Shift+Enterでやるサンプルを作ってみました。
TABへの変換はしてませんけど、それは、修正して下さい。
----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>Sample</title>
<script>
<!--
window.onload=function(){
document.getElementById('TAREA').onkeypress=jump;
};
function jump(e){
if(navigator.appName.charAt(0)=="M"){//IE
if(window.event.keyCode==13){
if(!window.event.shiftKey){
// window.event.keyCode=9;//TABはムリ
// document.getElementById('TEXT').focus();
//正規には次のtabindexで移動?
document.getElementById('TEXT').select();
return false;
}
}
} else {//Fox
if(e.which==13){
if(!e.shiftKey){
document.getElementById('TEXT').select();
return false;
}
}
}
return true;
}
//-->
</script>
</head>
<body>
<form name="FORM">
<textarea cols="10" rows="10" id="TAREA"></textarea>
<input type="text" value="TEXT" id="TEXT">
</form>
</body>
</html>

#1です、実際に試してみたのですが、、
ALTキーの場合、ブラウザがショートカットキーとして横取りするみたいなので、うまくいかないですね。
そこで、Shift+Enterでやるサンプルを作ってみました。
TABへの変換はしてませんけど、それは、修正して下さい。
----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>Sample<...続きを読む

Qalertでの改行方法は?

OS Winxp
ブラウザ IE6

またまた初心者なのですが。
alertを表示させたいときに

alert(document.cookie)

等と書くと思いますが、長い文字列を
改行してalertへ表示させるにはどのように書いたらいいんでしょうか?

よろしくお願いします。

Aベストアンサー

こんにちは。
私はまだ初心者なんですけど、

\n を使うと思うのですが。

Q【バグ解決】jQuery要素の絞り込み + ソート機能 について

jQuery要素の絞り込みとソート機能を追加したいですが
下記のHTMLのコードでは、【種類】の【犬】【猫】【鳥】部分の
絞り込み選択がバグって動きません。

こちらのコードのバグを解決できる方はおらっしますか?
http://xfs.jp/XHbqZ


下記のサイトように可動させたいです。
http://www.finefinefine.jp/wp/sample/sample28.html
http://www.finefinefine.jp/web/kiji2051/

Aベストアンサー

同じ現象が発生しないのでなんとも言えませんが
387行目、404行目の<form></form>を消してみてください。

<form>は入力・送信フォームなので再描画が走っているようです。


人気Q&Aランキング

おすすめ情報