Das ist eine Zwickmühle, für die ich keine Lösung finden kann. Nehmen Sie dieses HTML5-Spiel, das wir hosten:
http://www.scirra.com/arcade/action/93/8-bits-runner - Warnung hat Ton!
Die Seite wird gehostet auf scirra.com
aber das Spiel befindet sich in einem iframe auf static1.scirra.net
aus Sicherheitsgründen.
Wenn Sie jetzt während des Spiels die Tasten links und rechts, oben oder unten drücken, wird das gesamte Fenster nach oben und unten, links und rechts verschoben. Die Voreinstellung "Verhindern" scheint gut zu funktionieren, wenn das Spiel nicht fokussiert ist. Wir wollen diese Standardaktion natürlich verhindern, wenn wir das Spiel spielen! Also benutzen wir den Code:
var ar = new Array(32, 33, 34, 35, 36, 37, 38, 39, 40, 44);
$(document).keydown(function (e) {
var key = e.which;
if ($.inArray(key, ar) > -1) {
e.preventDefault();
return false;
}
return true;
});
Dies wird auf der übergeordneten Seite und auf der Iframe-Seite eingefügt. Wenn der Iframe den Fokus hat, scheinen links und rechts blockiert zu sein, aber nicht up and down
.
Kann uns jemand dabei helfen, das Scrollen der Seite zu stoppen und trotzdem Kommentare in das Kommentarfeld unter dem Spiel zu schreiben? Wenn Sie die Leertaste blockieren, können die Leute keine Leerzeichen in ihren Text einfügen!