我有一个简单的脚本在html中效果很好。但是在gsp中,它不再起作用了。
我的脚本非常简单,如下所示:
// program variables
var displayElement;
// constants
var maxLength = 300;
// calculator variables
var text;
var currentLength;
var dotPosition;
var lastNumber;
var currentNumber;
var rememberedNumber;
var operator;
alert('hello22');
function parseNumber(number) {
if ((number == -1) && (dotPosition > 0) || (maxLength == currentLength)) return;
if (currentLength == 0) text = '';
currentLength++;
if (number == -1) {
text += '.';
dotPosition = currentLength;
} else text += number;
displayElement.value = text;
}
function parseBackspace() {
if (currentLength == 0) return;
if ('.' == text[currentLength-1]) dotPosition = 0;
text = text.slice(0, currentLength-1);
if(--currentLength == 0) text = '';
displayElement.value = text;
}
function parseClearEntry() {
currentLength = 0;
text = '0';
dotPosition = 0;
displayElement.value = text;
}
function parseClear() {
parseClearEntry();
lastNumber = 0;
operator = '';
//added by Kevin
displayElement.value = '';
}
function initAll() {
alert('hello1113333333');
text = '0';
currentNumber = 0;
currentLength = 0;
displayElement = document.getElementById('TextBox');
rememberedNumber = 0;
lastNumber = 0;
dotPosition = 0;
alert('hello1111111111');
}
当我包含在gsp View 页面中时,我将
<g:javascript src="getKey.js" />
放在<head></head>
之间。然后我像
<body onload="initAll()">
这样调用函数initAll(),而像<div class="holder"><input type="button" class="buttonstyle" value="7" name="Seven" onclick="parseNumber(7)" /></div>
这样调用其他函数谁能告诉我怎么了?我确定脚本已正确包含,因为引发了警报“hello22”。
最佳答案
尝试在页脚处放置以下代码:
<g:script>
(function() { initAll(); })();
</g:script>
要么
<g:script>
window.onload = initAll; //note that is's without braces
</g:script>
代替
<body onload="initAll"
关于javascript - Javascript在Grails中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6752180/