onclick(将调用一个函数)之后,它会继续加载并且无法检测到按键
after onclick (which will call a function), it keep loading and cannot detect keypress
我是javascript的新人,我对以下问题很困惑:
在我点击按钮之前,可以检测到按键并导致警报
但是,点击按钮后,页面一直在加载,不再检测到我的按键,请问为什么会这样?我的代码有什么问题?(请注意:即使我使用 2 个 diff 函数进行两次打印,也存在同样的问题)
这是我的代码:
<script type="text/javascript">
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ("some key pressed");
}
function abc(tester) {
if (tester == 0){
document.writeln("<button onClick=\"abc(1);\" >To T1</button>")
document.writeln("tester0")
}
if (tester == 1){
document.writeln("tester1")
}
}
abc(0);
</script>
<---------------------------------------- ------------------>
使用Maraca代码后(问题依旧):
<script type="text/javascript">
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ('some key pressed');
}
var tester = 0;
function switchTester() {
var b = document.getElementById('switch-btn');
b.innerHTML = 'To T' + tester;
tester = 1 - tester;
if (tester==0)document.writeln('a list of html content A');
if (tester==1)document.writeln('B a list of html content B');
}
document.body.innerHTML='';
</script>
<button id="switch-btn" onClick="switchTester();">To T1</button>
<---------------------------------------- ------------------>
又是Thz Maraca,他的脚本帮助html 固定内容的切换,但是如果内容有一些变量怎么办?像 score/weather 等?
马拉卡代码:
<script>
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ('some key pressed');
}
var state = 0;
function toggle() {
document.getElementById('toggle-btn').innerHTML = 'switch to state ' + state;
var t = document.getElementsByClassName('toggle-content');
t[state].style.display = 'none';
state = 1 - state;
t[state].style.display = 'block';
}
</script>
<div class="toggle-content">
<h1>default content</h1>
<p>bla bla bla</p>
</div>
<div class="toggle-content" style="display:none">
<h1>other content</h1>
<p>whatever</p>
</div>
<button id="toggle-btn" onclick="toggle()">switch to state 1</button
>
(添加信息后的新答案。)这里是如何实现一个切换按钮的方法,它也可以切换内容:
http://jsfiddle.net/sjq5ts5q/(仅当显示内容的框架有焦点时才会注册按键事件)
<script>
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ('some key pressed');
}
var state = 0;
function toggle() {
document.getElementById('toggle-btn').innerHTML = 'switch to state ' + state;
var t = document.getElementsByClassName('toggle-content');
t[state].style.display = 'none';
state = 1 - state;
t[state].style.display = 'block';
}
</script>
<div class="toggle-content">
<h1>default content</h1>
<p>bla bla bla</p>
</div>
<div class="toggle-content" style="display:none">
<h1>other content</h1>
<p>whatever</p>
</div>
<button id="toggle-btn" onclick="toggle()">switch to state 1</button>
(旧答案。)我想你想要做的是一个切换按钮:
<script type="text/javascript">
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ('some key pressed');
}
var tester = 0;
function switchTester() {
var b = document.getElementById('switch-btn');
b.innerHTML = 'To T' + tester;
tester = 1 - tester;
// if (tester == 0) do whatever you want to
}
</script>
<button id="switch-btn" onClick="switchTester();">To T1</button>
我是javascript的新人,我对以下问题很困惑:
在我点击按钮之前,可以检测到按键并导致警报 但是,点击按钮后,页面一直在加载,不再检测到我的按键,请问为什么会这样?我的代码有什么问题?(请注意:即使我使用 2 个 diff 函数进行两次打印,也存在同样的问题)
这是我的代码:
<script type="text/javascript">
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ("some key pressed");
}
function abc(tester) {
if (tester == 0){
document.writeln("<button onClick=\"abc(1);\" >To T1</button>")
document.writeln("tester0")
}
if (tester == 1){
document.writeln("tester1")
}
}
abc(0);
</script>
<---------------------------------------- ------------------>
使用Maraca代码后(问题依旧):
<script type="text/javascript">
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ('some key pressed');
}
var tester = 0;
function switchTester() {
var b = document.getElementById('switch-btn');
b.innerHTML = 'To T' + tester;
tester = 1 - tester;
if (tester==0)document.writeln('a list of html content A');
if (tester==1)document.writeln('B a list of html content B');
}
document.body.innerHTML='';
</script>
<button id="switch-btn" onClick="switchTester();">To T1</button>
<---------------------------------------- ------------------>
又是Thz Maraca,他的脚本帮助html 固定内容的切换,但是如果内容有一些变量怎么办?像 score/weather 等?
马拉卡代码:
<script>
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ('some key pressed');
}
var state = 0;
function toggle() {
document.getElementById('toggle-btn').innerHTML = 'switch to state ' + state;
var t = document.getElementsByClassName('toggle-content');
t[state].style.display = 'none';
state = 1 - state;
t[state].style.display = 'block';
}
</script>
<div class="toggle-content">
<h1>default content</h1>
<p>bla bla bla</p>
</div>
<div class="toggle-content" style="display:none">
<h1>other content</h1>
<p>whatever</p>
</div>
<button id="toggle-btn" onclick="toggle()">switch to state 1</button
>
(添加信息后的新答案。)这里是如何实现一个切换按钮的方法,它也可以切换内容:
http://jsfiddle.net/sjq5ts5q/(仅当显示内容的框架有焦点时才会注册按键事件)
<script>
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ('some key pressed');
}
var state = 0;
function toggle() {
document.getElementById('toggle-btn').innerHTML = 'switch to state ' + state;
var t = document.getElementsByClassName('toggle-content');
t[state].style.display = 'none';
state = 1 - state;
t[state].style.display = 'block';
}
</script>
<div class="toggle-content">
<h1>default content</h1>
<p>bla bla bla</p>
</div>
<div class="toggle-content" style="display:none">
<h1>other content</h1>
<p>whatever</p>
</div>
<button id="toggle-btn" onclick="toggle()">switch to state 1</button>
(旧答案。)我想你想要做的是一个切换按钮:
<script type="text/javascript">
document.onkeypress = function(cde) {
cde = cde || window.cde;
alert ('some key pressed');
}
var tester = 0;
function switchTester() {
var b = document.getElementById('switch-btn');
b.innerHTML = 'To T' + tester;
tester = 1 - tester;
// if (tester == 0) do whatever you want to
}
</script>
<button id="switch-btn" onClick="switchTester();">To T1</button>