Accessing the browser from JavaScript and Java
query.wrl
#VRML V2.0 utf8
#
# Query browser state
# query.wrl
# by David R. Nadeau
#
# This world uses the "Browser" object in a script to query information
# about the VRML browser. That information is sent out as an MFString
# event that is routed into a Text node's string input. The effect is
# to display a text message showing the Browser's information. To
# give the browser something to do to make it report interesting frame
# rates, an animating object is displayed beside the text information.
#
WorldInfo {
title "Query browser state"
info [ "Copyright (c) 1998, David R. Nadeau" ]
}
Viewpoint {
position 0.0 0.0 10.0
description "Entry view"
}
NavigationInfo {
type [ "EXAMINE", "ANY" ]
headlight TRUE
}
Transform {
translation -4.0 0.0 0.0
scale 0.75 0.75 0.75
children [
Inline { url "two.wrl" }
]
}
Transform {
translation -1.5 1.25 0.0
children [
Shape {
# no appearance - emissive white
geometry DEF Message Text {
string ""
fontStyle FontStyle {
size 0.65
style "BOLD"
family "TYPEWRITER"
}
}
}
]
}
DEF Timer TimeSensor {
loop TRUE
cycleInterval 4.0
}
DEF Introspect Script {
eventIn SFTime trigger
eventOut MFString message
url "vrmlscript:
function update( ) {
message.length = 5;
message[0] = 'Browser: ' + Browser.getName( );
message[1] = 'Version: ' + Browser.getVersion( );
message[2] = 'URL: ' + Browser.getWorldURL( );
message[3] = 'Speed: ' + Browser.getCurrentSpeed( );
message[4] = 'Frames: ' + Browser.getCurrentFrameRate( );
}
function initialize( ) {
update( );
}
function trigger( t, ts ) {
update( );
}
"
}
ROUTE Timer.cycleTime TO Introspect.trigger
ROUTE Introspect.message TO Message.set_string