Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > window.close

Reply
Thread Tools

window.close

 
 
loenen
Guest
Posts: n/a
 
      06-12-2009
I have a script and I want a closebutton on the end that will always close
the window. I tried something with window.close() but I will not succeed.
How can I do so?

This is the script:

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en"><head><meta name="author" content="Created with Hot Potatoes
by Half-Baked Software, registered to RH van Loenen."></meta><meta
name="keywords" content="Hot Potatoes, Hot Potatoes, Half-Baked Software,
Windows, University of Victoria"></meta>

<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
<meta name="DC:Creator" content="RH van Loenen" />
<meta name="DC:Title" content="procenten les 1, oefening 1" />


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>
procenten les 1, oefening 1
</title>

<!-- Made with executable version 6.2 Release 5 Build 5 -->

<!-- The following insertion allows you to add your own code directly to
this head tag from the configuration screen -->



<style type="text/css">


/* This is the CSS stylesheet used in the exercise. */
/* Elements in square brackets are replaced by data based on configuration
settings when the exercise is built. */

/* BeginCorePageCSS */

/* Made with executable version 6.2 Release 5 Build 5 */


/* Hack to hide a nested Quicktime player from IE, which can't handle it. */
* html object.MediaPlayerNotForIE {
display: none;
}

body{
font-family: Geneva,Arial,sans-serif;
background-color: #C0C0C0;
color: #000000;

margin-right: 5%;
margin-left: 5%;
font-size: small;
}

p{
text-align: left;
margin: 0px;
font-size: 100%;
}

table,div,span,td{
font-size: 100%;
color: #000000;
}

div.Titles{
padding: 0.5em;;
text-align: center;
color: #000000;
}

button{
font-family: Geneva,Arial,sans-serif;
font-size: 100%;
display: inline;
}

..ExerciseTitle{
font-size: 140%;
color: #000000;
}

..ExerciseSubtitle{
font-size: 120%;
color: #000000;
}

div.StdDiv{
background-color: #FFFFFF;
text-align: center;
font-size: 100%;
color: #000000;
padding: 0.5em;
border-style: solid;
border-width: 1px 1px 1px 1px;
border-color: #000000;
margin-bottom: 1px;
}

/* EndCorePageCSS */

..RTLText{
text-align: right;
font-size: 150%;
direction: rtl;
font-family: "Simplified Arabic", "Traditional Arabic", "Times New Roman",
Geneva,Arial,sans-serif;
}

..CentredRTLText{
text-align: center;
font-size: 150%;
direction: rtl;
font-family: "Simplified Arabic", "Traditional Arabic", "Times New Roman",
Geneva,Arial,sans-serif;
}

button p.RTLText{
text-align: center;
}

..RTLGapBox{
text-align: right;
font-size: 150%;
direction: rtl;
font-family: "Times New Roman", Geneva,Arial,sans-serif;
}

..Guess{
font-weight: bold;
}

..CorrectAnswer{
font-weight: bold;
}

div#Timer{
padding: 0.25em;
margin-left: auto;
margin-right: auto;
text-align: center;
color: #000000;
}

span#TimerText{
padding: 0.25em;
border-width: 1px;
border-style: solid;
font-weight: bold;
display: none;
color: #000000;
}

span.Instructions{

}

div.ExerciseText{

}

..FeedbackText, .FeedbackText span.CorrectAnswer, .FeedbackText span.Guess,
..FeedbackText span.Answer{
color: #000000;
}

..LeftItem{
font-size: 100%;
color: #000000;
text-align: left;
}

..RightItem{
font-weight: bold;
font-size: 100%;
color: #000000;
}

span.CorrectMark{

}

input, textarea{
font-family: Geneva,Arial,sans-serif;
font-size: 120%;
}

select{
font-size: 100%;
}

div.Feedback {
background-color: #C0C0C0;
left: 33%;
width: 34%;
top: 33%;
z-index: 1;
border-style: solid;
border-width: 1px;
padding: 5px;
text-align: center;
color: #000000;
position: absolute;
display: none;
font-size: 100%;
}




div.ExerciseDiv{
color: #000000;
}

/* JMatch flashcard styles */
table.FlashcardTable{
background-color: transparent;
color: #000000;
border-color: #000000;
margin-left: 5%;
margin-right: 5%;
margin-top: 2em;
margin-bottom: 2em;
width: 90%;
position: relative;
text-align: center;
padding: 0px;
}

table.FlashcardTable tr{
border-style: none;
margin: 0px;
padding: 0px;
background-color: #FFFFFF;
}

table.FlashcardTable td.Showing{
font-size: 140%;
text-align: center;
width: 50%;
display: table-cell;
padding: 2em;
margin: 0px;
border-style: solid;
border-width: 1px;
color: #000000;
background-color: #FFFFFF;
}

table.FlashcardTable td.Hidden{
display: none;
}

/* JMix styles */
div#SegmentDiv{
margin-top: 2em;
margin-bottom: 2em;
text-align: center;
}

a.ExSegment{
font-size: 120%;
font-weight: bold;
text-decoration: none;
color: #000000;
}

span.RemainingWordList{
font-style: italic;
}

div.DropLine {
position: absolute;
text-align: center;
border-bottom-style: solid;
border-bottom-width: 1px;
border-bottom-color: #000000;
width: 80%;
}

/* JCloze styles */

..ClozeWordList{
text-align: center;
font-weight: bold;
}

div.ClozeBody{
text-align: left;
margin-top: 2em;
margin-bottom: 2em;
line-height: 2.0
}

span.GapSpan{
font-weight: bold;
}

/* JCross styles */

table.CrosswordGrid{
margin: auto auto 1em auto;
border-collapse: collapse;
padding: 0px;
background-color: #000000;
}

table.CrosswordGrid tbody tr td{
width: 1.5em;
height: 1.5em;
text-align: center;
vertical-align: middle;
font-size: 140%;
padding: 1px;
margin: 0px;
border-style: solid;
border-width: 1px;
border-color: #000000;
color: #000000;
}

table.CrosswordGrid span{
color: #000000;
}

table.CrosswordGrid td.BlankCell{
background-color: #000000;
color: #000000;
}

table.CrosswordGrid td.LetterOnlyCell{
text-align: center;
vertical-align: middle;
background-color: #ffffff;
color: #000000;
font-weight: bold;
}

table.CrosswordGrid td.NumLetterCell{
text-align: left;
vertical-align: top;
background-color: #ffffff;
color: #000000;
padding: 1px;
font-weight: bold;
}

..NumLetterCellText{
cursor: pointer;
color: #000000;
}

..GridNum{
vertical-align: super;
font-size: 66%;
font-weight: bold;
text-decoration: none;
color: #000000;
}

..GridNum:hover, .GridNum:visited{
color: #000000;
}

table#Clues{
margin: auto;
vertical-align: top;
}

table#Clues td{
vertical-align: top;
}

table.ClueList{
margin: auto;
}

td.ClueNum{
text-align: right;
font-weight: bold;
vertical-align: top;
}

td.Clue{
text-align: left;
}

div#ClueEntry{
text-align: left;
margin-bottom: 1em;
}

/* Keypad styles */

div.Keypad{
text-align: center;
display: none; /* initially hidden, shown if needed */
margin-bottom: 0.5em;
}

div.Keypad button{
font-family: Geneva,Arial,sans-serif;
font-size: 120%;
background-color: #ffffff;
color: #000000;
width: 2em;
}

/* JQuiz styles */

div.QuestionNavigation{
text-align: center;
}

..QNum{
margin: 0em 1em 0.5em 1em;
font-weight: bold;
vertical-align: middle;
}

textarea{
font-family: Geneva,Arial,sans-serif;
}

..QuestionText{
text-align: left;
margin: 0px;
font-size: 100%;
}

..Answer{
font-size: 120%;
letter-spacing: 0.1em;
}

..PartialAnswer{
font-size: 120%;
letter-spacing: 0.1em;
color: #000000;
}

..Highlight{
color: #000000;
background-color: #ffff00;
font-weight: bold;
font-size: 120%;
}

ol.QuizQuestions{
text-align: left;
list-style-type: none;
}

li.QuizQuestion{
padding: 1em;
border-style: solid;
border-width: 0px 0px 1px 0px;
}

ol.MCAnswers{
text-align: left;
list-style-type: upper-alpha;
padding: 1em;
}

ol.MCAnswers li{
margin-bottom: 1em;
}

ol.MSelAnswers{
text-align: left;
list-style-type: lower-alpha;
padding: 1em;
}

div.ShortAnswer{
padding: 1em;
}

..FuncButton {
text-align: center;
border-style: solid;

border-left-color: #ffffff;
border-top-color: #ffffff;
border-right-color: #7f7f7f;
border-bottom-color: #7f7f7f;
color: #000000;
background-color: #FFFFFF;

border-width: 2px;
padding: 3px 6px 3px 6px;
cursor: pointer;
}

..FuncButtonUp {
color: #FFFFFF;
text-align: center;
border-style: solid;

border-left-color: #ffffff;
border-top-color: #ffffff;
border-right-color: #7f7f7f;
border-bottom-color: #7f7f7f;

background-color: #000000;
color: #FFFFFF;
border-width: 2px;
padding: 3px 6px 3px 6px;
cursor: pointer;
}

..FuncButtonDown {
color: #FFFFFF;
text-align: center;
border-style: solid;

border-left-color: #7f7f7f;
border-top-color: #7f7f7f;
border-right-color: #ffffff;
border-bottom-color: #ffffff;
background-color: #000000;
color: #FFFFFF;

border-width: 2px;
padding: 3px 6px 3px 6px;
cursor: pointer;
}

/*BeginNavBarStyle*/

div.NavButtonBar{
background-color: #000000;
text-align: center;
margin: 2px 0px 2px 0px;
clear: both;
font-size: 100%;
}

..NavButton {
border-style: solid;

border-left-color: #7f7f7f;
border-top-color: #7f7f7f;
border-right-color: #000000;
border-bottom-color: #000000;
background-color: #000000;
color: #ffffff;

border-width: 2px;
cursor: pointer;
}

..NavButtonUp {
border-style: solid;

border-left-color: #7f7f7f;
border-top-color: #7f7f7f;
border-right-color: #000000;
border-bottom-color: #000000;
color: #000000;
background-color: #ffffff;

border-width: 2px;
cursor: pointer;
}

..NavButtonDown {
border-style: solid;

border-left-color: #000000;
border-top-color: #000000;
border-right-color: #7f7f7f;
border-bottom-color: #7f7f7f;
color: #000000;
background-color: #ffffff;

border-width: 2px;
cursor: pointer;
}

/*EndNavBarStyle*/

a{
color: #0000FF;
}

a:visited{
color: #0000CC;
}

a:hover{
color: #0000FF;
}

div.CardStyle {
position: absolute;
font-family: Geneva,Arial,sans-serif;
font-size: 100%;
padding: 5px;
border-style: solid;
border-width: 1px;
color: #000000;
background-color: #FFFFFF;
left: -50px;
top: -50px;
overflow: visible;
}

..rtl{
text-align: right;
font-size: 140%;
}


</style>

<script type="text/javascript">

//<![CDATA[

<!--




function Client(){
//if not a DOM browser, hopeless
this.min = false; if (document.getElementById){this.min = true;};

this.ua = navigator.userAgent;
this.name = navigator.appName;
this.ver = navigator.appVersion;

//Get data about the browser
this.mac = (this.ver.indexOf('Mac') != -1);
this.win = (this.ver.indexOf('Windows') != -1);

//Look for Gecko
this.gecko = (this.ua.indexOf('Gecko') > 1);
if (this.gecko){
this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko' )+6,
this.ua.length));
if (this.geckoVer < 20020000){this.min = false;}
}

//Look for Firebird
this.firebird = (this.ua.indexOf('Firebird') > 1);

//Look for Safari
this.safari = (this.ua.indexOf('Safari') > 1);
if (this.safari){
this.gecko = false;
}

//Look for IE
this.ie = (this.ua.indexOf('MSIE') > 0);
if (this.ie){
this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE ')+5,
this.ua.length));
if (this.ieVer < 5.5){this.min = false;}
}

//Look for Opera
this.opera = (this.ua.indexOf('Opera') > 0);
if (this.opera){
this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Oper a')+6,
this.ua.length));
if (this.operaVer < 7.04){this.min = false;}
}
if (this.min == false){
alert('Your browser may not be able to handle this page.');
}

//Special case for the horrible ie5mac
this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6));
}

var C = new Client();

//for (prop in C){
// alert(prop + ': ' + C[prop]);
//}



//CODE FOR HANDLING NAV BUTTONS AND FUNCTION BUTTONS

//[strNavBarJS]
function NavBtnOver(Btn){
if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';}
}

function NavBtnOut(Btn){
Btn.className = 'NavButton';
}

function NavBtnDown(Btn){
Btn.className = 'NavButtonDown';
}
//[/strNavBarJS]

function FuncBtnOver(Btn){
if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';}
}

function FuncBtnOut(Btn){
Btn.className = 'FuncButton';
}

function FuncBtnDown(Btn){
Btn.className = 'FuncButtonDown';
}

function FocusAButton(){
if (document.getElementById('CheckButton1') != null){
document.getElementById('CheckButton1').focus();
}
else{
if (document.getElementById('CheckButton2') != null){
document.getElementById('CheckButton2').focus();
}
else{
document.getElementsByTagName('button')[0].focus();
}
}
}




//CODE FOR HANDLING DISPLAY OF POPUP FEEDBACK BOX

var topZ = 1000;

function ShowMessage(Feedback){
var Output = Feedback + '<br /><br />';
document.getElementById('FeedbackContent').innerHT ML = Output;
var FDiv = document.getElementById('FeedbackDiv');
topZ++;
FDiv.style.zIndex = topZ;
FDiv.style.top = TopSettingWithScrollOffset(30) + 'px';

FDiv.style.display = 'block';

ShowElements(false, 'input');
ShowElements(false, 'select');
ShowElements(false, 'object');
ShowElements(true, 'object', 'FeedbackContent');

//Focus the OK button
setTimeout("document.getElementById('FeedbackOKBut ton').focus()", 50);

//
}

function ShowElements(Show, TagName, ContainerToReverse){
// added third argument to allow objects in the feedback box to appear
//IE bug -- hide all the form elements that will show through the popup
//FF on Mac bug : doesn't redisplay objects whose visibility is set to
visible
//unless the object's display property is changed

//get container object (by Id passed in, or use document otherwise)
TopNode = document.getElementById(ContainerToReverse);
var Els;
if (TopNode != null) {
Els = TopNode.getElementsByTagName(TagName);
} else {
Els = document.getElementsByTagName(TagName);
}

for (var i=0; i<Els.length; i++){
if (TagName == "object") {
//manipulate object elements in all browsers
if (Show == true){
Els[i].style.visibility = 'visible';
//get Mac FireFox to manipulate display, to force screen redraw
if (C.mac && C.gecko) {Els[i].style.display = '';}
}
else{
Els[i].style.visibility = 'hidden';
if (C.mac && C.gecko) {Els[i].style.display = 'none';}
}
}
else {
// tagName is either input or select (that is, Form Elements)
// ie6 has a problem with Form elements, so manipulate those
if (C.ie) {
if (C.ieVer < 7) {
if (Show == true){
Els[i].style.visibility = 'visible';
}
else{
Els[i].style.visibility = 'hidden';
}
}
}
}
}
}



function HideFeedback(){
document.getElementById('FeedbackDiv').style.displ ay = 'none';
ShowElements(true, 'input');
ShowElements(true, 'select');
ShowElements(true, 'object');
if (Finished == true){
Finish();
}
}


//GENERAL UTILITY FUNCTIONS AND VARIABLES

//PAGE DIMENSION FUNCTIONS
function PageDim(){
//Get the page width and height
this.W = 600;
this.H = 400;
this.W = document.getElementsByTagName('body')[0].clientWidth;
this.H = document.getElementsByTagName('body')[0].clientHeight;
}

var pg = null;

function GetPageXY(El) {
var XY = {x: 0, y: 0};
while(El){
XY.x += El.offsetLeft;
XY.y += El.offsetTop;
El = El.offsetParent;
}
return XY;
}

function GetScrollTop(){
if (typeof(window.pageYOffset) == 'number'){
return window.pageYOffset;
}
else{
if ((document.body)&&(document.body.scrollTop)){
return document.body.scrollTop;
}
else{
if ((document.documentElement)&&(document.documentEle ment.scrollTop)){
return document.documentElement.scrollTop;
}
else{
return 0;
}
}
}
}

function GetViewportHeight(){
if (typeof window.innerHeight != 'undefined'){
return window.innerHeight;
}
else{
if (((typeof document.documentElement != 'undefined')&&(typeof
document.documentElement.clientHeight !=
'undefined'))&&(document.documentElement.clientHei ght != 0)){
return document.documentElement.clientHeight;
}
else{
return document.getElementsByTagName('body')[0].clientHeight;
}
}
}

function TopSettingWithScrollOffset(TopPercent){
var T = Math.floor(GetViewportHeight() * (TopPercent/100));
return GetScrollTop() + T;
}

//CODE FOR AVOIDING LOSS OF DATA WHEN BACKSPACE KEY INVOKES history.back()
var InTextBox = false;

function SuppressBackspace(e){
if (InTextBox == true){return;}
if (C.ie) {
thisKey = window.event.keyCode;
}
else {
thisKey = e.keyCode;
}

var Suppress = false;

if (thisKey == {
Suppress = true;
}

if (Suppress == true){
if (C.ie){
window.event.returnValue = false;
window.event.cancelBubble = true;
}
else{
e.preventDefault();
}
}
}

if (C.ie){
document.attachEvent('onkeydown',SuppressBackspace );
window.attachEvent('onkeydown',SuppressBackspace);
}
else{
if (window.addEventListener){
window.addEventListener('keypress',SuppressBackspa ce,false);
}
}

function ReduceItems(InArray, ReduceToSize){
var ItemToDump=0;
var j=0;
while (InArray.length > ReduceToSize){
ItemToDump = Math.floor(InArray.length*Math.random());
InArray.splice(ItemToDump, 1);
}
}

function Shuffle(InArray){
var Num;
var Temp = new Array();
var Len = InArray.length;

var j = Len;

for (var i=0; i<Len; i++){
Temp[i] = InArray[i];
}

for (i=0; i<Len; i++){
Num = Math.floor(j * Math.random());
InArray[i] = Temp[Num];

for (var k=Num; k < (j-1); k++) {
Temp[k] = Temp[k+1];
}
j--;
}
return InArray;
}

function WriteToInstructions(Feedback) {
document.getElementById('InstructionsDiv').innerHT ML = Feedback;

}




function EscapeDoubleQuotes(InString){
return InString.replace(/"/g, '&quot;')
}

function TrimString(InString){
var x = 0;

if (InString.length != 0) {
while ((InString.charAt(InString.length - 1) == '\u0020') ||
(InString.charAt(InString.length - 1) == '\u000A') ||
(InString.charAt(InString.length - 1) == '\u000D')){
InString = InString.substring(0, InString.length - 1)
}

while ((InString.charAt(0) == '\u0020') || (InString.charAt(0) == '\u000A')
|| (InString.charAt(0) == '\u000D')){
InString = InString.substring(1, InString.length)
}

while (InString.indexOf(' ') != -1) {
x = InString.indexOf(' ')
InString = InString.substring(0, x) + InString.substring(x+1,
InString.length)
}

return InString;
}

else {
return '';
}
}

function FindLongest(InArray){
if (InArray.length < 1){return -1;}

var Longest = 0;
for (var i=1; i<InArray.length; i++){
if (InArray[i].length > InArray[Longest].length){
Longest = i;
}
}
return Longest;
}

//UNICODE CHARACTER FUNCTIONS
function IsCombiningDiacritic(CharNum){
var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >=
0x20d0)&&(CharNum <= 0x20ff)));
Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >=
0xfe20)&&(CharNum <= 0xfe23)));
return Result;
}

function IsCJK(CharNum){
return ((CharNum >= 0x3000)&&(CharNum < 0xd800));
}

//SETUP FUNCTIONS
//BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED
function ClearTextBoxes(){
var NList = document.getElementsByTagName('input');
for (var i=0; i<NList.length; i++){
if ((NList[i].id.indexOf('Guess') > -1)||(NList[i].id.indexOf('Gap') > -1)){
NList[i].value = '';
}
if (NList[i].id.indexOf('Chk') > -1){
NList[i].checked = '';
}
}
}

//EXTENSION TO ARRAY OBJECT
function Array_IndexOf(Input){
var Result = -1;
for (var i=0; i<this.length; i++){
if (this[i] == Input){
Result = i;
}
}
return Result;
}
Array.prototype.indexOf = Array_IndexOf;

//IE HAS RENDERING BUG WITH BOTTOM NAVBAR
function RemoveBottomNavBarForIE(){
if ((C.ie)&&(document.getElementById('Reading') != null)){
if (document.getElementById('BottomNavBar') != null){
document.getElementById('TheBody').removeChild(doc ument.getElementById('BottomNavBar'));
}
}
}




//HOTPOTNET-RELATED CODE

var HPNStartTime = (new Date()).getTime();
var SubmissionTimeout = 30000;
var Detail = ''; //Global that is used to submit tracking data

function Finish(){
//If there's a form, fill it out and submit it
if (document.store != null){
Frm = document.store;
Frm.starttime.value = HPNStartTime;
Frm.endtime.value = (new Date()).getTime();
Frm.mark.value = Score;
Frm.detail.value = Detail;
Frm.submit();
}
}





//JCLOZE CORE JAVASCRIPT CODE

function ItemState(){
this.ClueGiven = false;
this.HintsAndChecks = 0;
this.MatchedAnswerLength = 0;
this.ItemScore = 0;
this.AnsweredCorrectly = false;
this.Guesses = new Array();
return this;
}

var Feedback = '';
var Correct = 'Correct! Well done.';
var Incorrect = 'Some of your answers are incorrect. Incorrect answers have
been left in place for you to change.';
var GiveHint = 'The next correct letter has been added to the answer.';
var CaseSensitive = false;
var YourScoreIs = 'Your score is ';
var Finished = false;
var Locked = false;
var Score = 0;
var CurrentWord = 0;
var Guesses = '';
var TimeOver = false;

I = new Array();

I[0] = new Array();
I[0][1] = new Array();
I[0][1][0] = new Array();
I[0][1][0][0] = '\u0032\u0032\u002C\u0033\u0033';
I[0][1][1] = new Array();
I[0][1][1][0]='\u0032\u0032\u002E\u0033\u0033';
I[0][2]='\u0064\u0065\u006E\u006B\u0020\u0065\u0065\u006E \u0073\u0020\u0061\u0061\u006E\u0020\u0068\u0065\u 0074\u0020\u0076\u0065\u0072\u0073\u0063\u0068\u00 75\u0069\u0076\u0065\u006E\u0020\u0076\u0061\u006E \u0020\u0064\u0065\u0020\u006B\u006F\u006D\u006D\u 0061\u002E';

I[1] = new Array();
I[1][1] = new Array();
I[1][1][0] = new Array();
I[1][1][0][0] = '\u0039\u0038\u002C\u0033\u0036\u0033\u0039\u0038\ u0033';
I[1][1][1] = new Array();
I[1][1][1][0]='\u0039\u0038\u002E\u0033\u0036\u0033\u0039\u0038 \u0033';
I[1][2]='';

I[2] = new Array();
I[2][1] = new Array();
I[2][1][0] = new Array();
I[2][1][0][0] = '\u0030\u002C\u0030\u0039\u0032\u0033';
I[2][1][1] = new Array();
I[2][1][1][0]='\u0030\u002E\u0030\u0039\u0032\u0033';
I[2][2]='';


State = new Array();

function StartUp(){
RemoveBottomNavBarForIE();
//Show a keypad if there is one (added bugfix for 6.0.4.12)
if (document.getElementById('CharacterKeypad') != null){
document.getElementById('CharacterKeypad').style.d isplay = 'block';
}







var i = 0;

State.length = 0;
for (i=0; i<I.length; i++){
State[i] = new ItemState();
}

ClearTextBoxes();



}

function ShowClue(ItemNum){
if (Locked == true){return;}
State[ItemNum].ClueGiven = true;
ShowMessage(I[ItemNum][2]);
}

function SaveCurrentAnswers(){
var Ans = '';
for (var i=0; i<I.length; i++){
Ans = GetGapValue(i);
if ((Ans.length > 0)&&(Ans != State[i].Guesses[State[i].Guesses.length-1])){
State[i].Guesses[State[i].Guesses.length] = Ans;
}
}
}

function CompileGuesses(){
var F = document.getElementById('store');
if (F != null){
var Temp = '<?xml version="1.0"?><hpnetresult><fields>';
var GapLabel = '';
for (var i=0; i<State.length; i++){
GapLabel = 'Gap ' + (i+1).toString();
Temp += '<field><fieldname>' + GapLabel + '</fieldname>';
Temp += '<fieldtype>student-responses</fieldtype><fieldlabel>' + GapLabel +
'</fieldlabel>';
Temp += '<fieldlabelid>JClozeStudentResponses</fieldlabelid><fielddata>';
for (var j=0; j<State[i].Guesses.length; j++){
if (j>0){Temp += '| ';}
Temp += State[i].Guesses[j] + ' ';
}
Temp += '</fielddata></field>';
}
Temp += '</fields></hpnetresult>';
Detail = Temp;
}
}

function CheckAnswers(){
if (Locked == true){return;}
SaveCurrentAnswers();
var AllCorrect = true;

//Check each answer
for (var i = 0; i<I.length; i++){

if (State[i].AnsweredCorrectly == false){
//If it's right, calculate its score
if (CheckAnswer(i, true) > -1){
var TotalChars = GetGapValue(i).length;
State[i].ItemScore = (TotalChars-State[i].HintsAndChecks)/TotalChars;
if (State[i].ClueGiven == true){State[i].ItemScore /= 2;}
if (State[i].ItemScore <0 ){State[i].ItemScore = 0;}
State[i].AnsweredCorrectly = true;
//Drop the correct answer into the page, replacing the text box
SetCorrectAnswer(i, GetGapValue(i));
}
else{
//Otherwise, increment the hints for this item, as a penalty
State[i].HintsAndChecks++;

//then set the flag
AllCorrect = false;
}
}
}

//Calculate the total score
var TotalScore = 0;
for (i=0; i<State.length; i++){
TotalScore += State[i].ItemScore;
}
TotalScore = Math.floor((TotalScore * 100)/I.length);

//Compile the output
Output = '';

if (AllCorrect == true){
Output = Correct + '<br />';
}

Output += YourScoreIs + ' ' + TotalScore + '%.<br />';
if (AllCorrect == false){
Output += Incorrect;
}
ShowMessage(Output);
setTimeout('WriteToInstructions(Output)', 50);

Score = TotalScore;
CompileGuesses();

if ((AllCorrect == true)||(Finished == true)){



TimeOver = true;
Locked = true;
Finished = true;
setTimeout('Finish()', SubmissionTimeout);
}

}

function TrackFocus(BoxNumber){
CurrentWord = BoxNumber;
InTextBox = true;
}

function LeaveGap(){
InTextBox = false;
}

function CheckBeginning(Guess, Answer){
var OutString = '';
var i = 0;
var UpperGuess = '';
var UpperAnswer = '';

if (CaseSensitive == false) {
UpperGuess = Guess.toUpperCase();
UpperAnswer = Answer.toUpperCase();
}
else {
UpperGuess = Guess;
UpperAnswer = Answer;
}

while (UpperGuess.charAt(i) == UpperAnswer.charAt(i)) {
OutString += Guess.charAt(i);
i++;
}
OutString += Answer.charAt(i);
return OutString;
}

function GetGapValue(GNum){
var RetVal = '';
if ((GNum<0)||(GNum>=I.length)){return RetVal;}
if (document.getElementById('Gap' + GNum) != null){
RetVal = document.getElementById('Gap' + GNum).value;
RetVal = TrimString(RetVal);
}
else{
RetVal = State[GNum].Guesses[State[GNum].Guesses.length-1];
}
return RetVal;
}

function SetGapValue(GNum, Val){
if ((GNum<0)||(GNum>=I.length)){return;}
if (document.getElementById('Gap' + GNum) != null){
document.getElementById('Gap' + GNum).value = Val;
document.getElementById('Gap' + GNum).focus();
}
}

function SetCorrectAnswer(GNum, Val){
if ((GNum<0)||(GNum>=I.length)){return;}
if (document.getElementById('GapSpan' + GNum) != null){
document.getElementById('GapSpan' + GNum).innerHTML = Val;
}
}

function FindCurrent() {
var x = 0;
FoundCurrent = -1;

//Test the current word:
//If its state is not set to already correct, check the word.
if (State[CurrentWord].AnsweredCorrectly == false){
if (CheckAnswer(CurrentWord, false) < 0){
return CurrentWord;
}
}

x=CurrentWord + 1;
while (x<I.length){
if (State[x].AnsweredCorrectly == false){
if (CheckAnswer(x, false) < 0){
return x;
}
}
x++;
}

x = 0;
while (x<CurrentWord){
if (State[x].AnsweredCorrectly == false){
if (CheckAnswer(x, false) < 0){
return x;
}
}
x++;
}
return FoundCurrent;
}

function CheckAnswer(GapNum, MarkAnswer){
var Guess = GetGapValue(GapNum);
var UpperGuess = '';
var UpperAnswer = '';
if (CaseSensitive == false){
UpperGuess = Guess.toUpperCase();
}
else{
UpperGuess = Guess;
}
var Match = -1;
for (var i = 0; i<I[GapNum][1].length; i++){
if (CaseSensitive == false){
UpperAnswer = I[GapNum][1][i][0].toUpperCase();
}
else{
UpperAnswer = I[GapNum][1][i][0];
}
if (TrimString(UpperGuess) == UpperAnswer){
Match = i;
if (MarkAnswer == true){
State[GapNum].AnsweredCorrectly = true;
}
}
}
return Match;
}

function GetHint(GapNum){
Guess = GetGapValue(GapNum);

if (CheckAnswer(GapNum, false) > -1){return ''}
RightBits = new Array();
for (var i=0; i<I[GapNum][1].length; i++){
RightBits[i] = CheckBeginning(Guess, I[GapNum][1][i][0]);
}
var RightOne = FindLongest(RightBits);
var Result =
I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length);
//Add another char if the last one is a space
if (Result.charAt(Result.length-1) == ' '){
Result =
I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length+1);
}
return Result;
}

function ShowHint(){
if (document.getElementById('FeedbackDiv').style.disp lay ==
'block'){return;}
if (Locked == true){return;}
var CurrGap = FindCurrent();
if (CurrGap < 0){return;}

var HintString = GetHint(CurrGap);

if (HintString.length > 0){
SetGapValue(CurrGap, HintString);
State[CurrGap].HintsAndChecks += 1;
}
ShowMessage(GiveHint);
}

function TypeChars(Chars){
var CurrGap = FindCurrent();
if (CurrGap < 0){return;}
if (document.getElementById('Gap' + CurrGap) != null){
SetGapValue(CurrGap, document.getElementById('Gap' + CurrGap).value +
Chars);
}
}



//-->

//]]>

</script>


</head>

<body onload="StartUp()" id="TheBody" >

<!-- BeginTopNavButtons -->


<div class="NavButtonBar" id="TopNavBar">




<button class="NavButton" onfocus="NavBtnOver(this)"
onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)"
onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)"
onmouseup="NavBtnOut(this)" onclick="location='contents.htm'; return
false;"> Index </button>



<button class="NavButton" onfocus="NavBtnOver(this)"
onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)"
onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)"
onmouseup="NavBtnOut(this)" onclick="location='nextpage.htm'; return
false;">=&gt;</button>


</div>



<!-- EndTopNavButtons -->

<div class="Titles">
<h2 class="ExerciseTitle">procenten les 1, oefening 1</h2>

<h3 class="ExerciseSubtitle">Gap-fill exercise</h3>



</div>

<div id="InstructionsDiv" class="StdDiv">
<div id="Instructions">Fill in all the gaps, then press "Check" to check
your answers. Use the "Hint" button to get a free letter if an answer is
giving you trouble. You can also click on the "[?]" button to get a clue.
Note that you will lose points if you ask for hints or clues!</div>
</div>





<div id="MainDiv" class="StdDiv">

<!-- These top buttons hidden; reveal if required -->
<!--
<button id="CheckButton1" class="FuncButton" onmouseover="FuncBtnOver(this)"
onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)"
onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)"
onmouseup="FuncBtnOut(this)"
onclick="CheckAnswers()">&nbsp;Check&nbsp;</button>


<button class="FuncButton" onmouseover="FuncBtnOver(this)"
onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)"
onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)"
onmouseup="FuncBtnOut(this)" onclick="ShowHint()">&nbsp;Hint&nbsp;</button>


-->

<div id="ClozeDiv">
<form id="Cloze" method="post" action="" onsubmit="return false;">
<div class="ClozeBody">
1% van 2233 = <span class="GapSpan" id="GapSpan0"><input type="text"
id="Gap0" onfocus="TrackFocus(0)" onblur="LeaveGap()" class="GapBox"
size="6"></input><button style="line-height: 1.0" class="FuncButton"
onfocus="FuncBtnOver(this)" onmouseover="FuncBtnOver(this)"
onblur="FuncBtnOut(this)" onmouseout="FuncBtnOut(this)"
onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)"
onclick="ShowClue(0)">[?]</button></span> <br /><br />1% van 9836,3983=
<span class="GapSpan" id="GapSpan1"><input type="text" id="Gap1"
onfocus="TrackFocus(1)" onblur="LeaveGap()" class="GapBox"
size="9"></input></span> <br /><br />1% van 9,23 = <span class="GapSpan"
id="GapSpan2"><input type="text" id="Gap2" onfocus="TrackFocus(2)"
onblur="LeaveGap()" class="GapBox" size="6"></input></span>
</div>
</form>
</div>



<button id="CheckButton2" class="FuncButton" onmouseover="FuncBtnOver(this)"
onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)"
onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)"
onmouseup="FuncBtnOut(this)"
onclick="CheckAnswers()">&nbsp;Check&nbsp;</button>


<button class="FuncButton" onmouseover="FuncBtnOver(this)"
onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)"
onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)"
onmouseup="FuncBtnOut(this)" onclick="ShowHint()">&nbsp;Hint&nbsp;</button>


</div>



<div class="Feedback" id="FeedbackDiv">
<div class="FeedbackText" id="FeedbackContent"></div>
<button id="FeedbackOKButton" class="FuncButton" onfocus="FuncBtnOver(this)"
onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)"
onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)"
onmouseup="FuncBtnOut(this)" onclick="HideFeedback(); return
false;">&nbsp;OK&nbsp;</button>
</div>

<!-- BeginBottomNavButtons -->


<div class="NavButtonBar" id="BottomNavBar">




<button class="NavButton" onfocus="NavBtnOver(this)"
onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)"
onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)"
onmouseup="NavBtnOut(this)" onclick="location='contents.htm'; return
false;"> Index </button>



<button class="NavButton" onfocus="NavBtnOver(this)"
onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)"
onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)"
onmouseup="NavBtnOut(this)" onclick="location='nextpage.htm'; return
false;">=&gt;</button>


</div>



<!-- EndBottomNavButtons -->

<!-- BeginSubmissionForm -->

<!-- EndSubmissionForm -->

</body>

</html>

 
Reply With Quote
 
 
 
 
Evertjan.
Guest
Posts: n/a
 
      06-12-2009
loenen wrote on 12 jun 2009 in comp.lang.javascript:

> I have a script and I want a closebutton on the end that will always
> close the window. I tried something with window.close() but I will not
> succeed. How can I do so?
>
> This is the script:
>
> <?xml version="1.0"?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml"
> xml:lang="en"><head><meta name="author" content="Created with Hot
> Potatoes by Half-Baked Software, registered to RH van
> Loenen."></meta><meta name="keywords" content="Hot Potatoes, Hot
> Potatoes, Half-Baked Software, Windows, University of
> Victoria"></meta>


[SKIP about 1500 lines of code]

Dacht je nu echt dat iemand 1500 regels code gaat napluizen?

Please make a page as short as possible, showing the problem.

I have never yet seen </meta>, btw.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
 
Reply With Quote
 
 
 
 
SAM
Guest
Posts: n/a
 
      06-12-2009
Le 6/12/09 10:04 PM, loenen a écrit :
> I have a script and I want a closebutton on the end that will always
> close the window. I tried something with window.close() but I will not
> succeed. How can I do so?


self.close()
or
window.close()

works only in a popup
that's to say :
only in a window that *has been opened by JavaScript* !

Usually you can't close a "normal" window
(you can't close the main window with a "closebutton")

There is no "window.open" nor "window.close" in the given code ...
Why to give it ?
to show how it is uggly ? (so heavy CSS and JS)


> This is the script:


(snip ... no interest)
(does somebody yet use an IE.5.Mac ?)

What that means ?
my score is only 83% ?
while I got a "Correct! Well done." !

--
sm
 
Reply With Quote
 
Michael J. Ryan
Guest
Posts: n/a
 
      06-13-2009
On 6/12/2009 1:04 PM, loenen wrote:
> I have a script and I want a closebutton on the end that will always
> close the window. I tried something with window.close() but I will not
> succeed. How can I do so?


First, is the methos being called?

alert("trying to close");
window.top.close();

Second, was the window created with a window.open call?

--
Michael J. Ryan - http://tracker1.info/

.... FRA #255: A wife is a luxury ... a smart accountant is a necessity.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off




Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57