anScript

Web

Unless stated otherwise, all graphic window instructions are available in anScript for Web via webSupport.js and webSupport.ans (see below).

Latest version of anScript for Web can be found at link.


webRunJavascript(var.s code)

available only in anScript for Web

Run javascript code. Quick example:

webRunJavascript(alert('hello').s)
/use consolePrint instead

webRunJavascript(var ret, var.s instruction, var arg1, ...)

available only in anScript for Web

Run javascript code and get its return, ret can be var.s, var.i or var (no return). Quick example:

webRunJavascript(var, alert.s, hello.s)
/use consolePrint instead

webSetDOM(var[element] DOM)

available only in anScript for Web

Set page’s Document Object Model.


webSetDOM explained

var[element] is technically var[] supertype, but it’s also anScript class named element.

Classes property and element used in webSetDOM (copy and paste it into your code):

<include(library/arrayPushBack.ans)>

/Property class
instructionCreate(propertyBegin)
	variableCreateLocal(name, 0.i)
	variableCreateLocal(value, 1.i)
}
instructionCreate(propertyEnd)
	variableDeleteLocal(name)
	variableDeleteLocal(value)
}
instructionCreate(propertyConstruct, newPropertyObject, newName, newValue)
	newPropertyObject.variableAssign(var[])
	newPropertyObject.arraySetSize(2.i)
	newPropertyObject[name].variableAssign(newName)
	newPropertyObject[value].variableAssign(newValue)
}
instructionCreate(propertyDestruct, oldPropertyObject)
	oldPropertyObject.variableAssign(var)
}
/Element class
instructionCreate(elementBegin)
	variableCreateLocal(name, 0.i)
	variableCreateLocal(properties, 1.i)
}
instructionCreate(elementEnd)
	variableDeleteLocal(name)
	variableDeleteLocal(properties)
}
instructionCreate(elementConstruct, newElementObject, newName)
	newElementObject.variableAssign(var[])
	newElementObject.arraySetSize(2.i)
	newElementObject[name].variableAssign(newName)
	newElementObject[properties].variableAssign(var[])
}
instructionCreate(elementDestruct, oldElementObject)
	oldElementObject.variableAssign(var)
}
instructionCreate(addProperty, elementObject, newProperty)
	elementObject[properties].arrayPushBack(newProperty)
}
instructionCreate(addInsideElement, elementObject, newElement)
	elementObject.arrayPushBack(newElement)
}

Small example:

propertyBegin()
elementBegin()

variableCreate(html,var)
html.elementConstruct(html.s)
variableCreate(body,var)
body.elementConstruct(body.s)
variableCreate(input,var)
input.elementConstruct(input.s)
variableCreate(property,var)
property.propertyConstruct(type.s,file.s)
input.addProperty(property)
body.addInsideElement(input)
body.addInsideElement(x.s)
html.addInsideElement(body)

/use debugVariables() to see what happened
webSetDOM(html)
consolePrint(done.s)

propertyEnd()
elementEnd()