<!DOCTYPE html>
<html>
<head>
<title>HTML5/Flash Audio</title>
</head>
<body><br><pre>
<audio controls>
<object type="application/x-shockwave-flash"
data="audioplayer.swf" width="300" height="30">
<param name="FlashVars"
value="mp3=audio.mp3&showstop=1&showvolume=1">
</object>
<source src='audio.m4a' type='audio/aac'>
<source src='audio.mp3' type='audio/mp3'>
<source src='audio.ogg' type='audio/ogg'>
</audio>
</pre></body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Video</title>
</head>
<body>
<video width='560' height='320' controls>
<source src='movie.mp4' type='video/mp4'>
<source src='movie.webm' type='video/webm'>
<source src='movie.ogv' type='video/ogg'>
</video>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Playing Video with JavaScript</title>
<script src='OSC.js'></script>
</head>
<body>
<video id='myvideo' width='560' height='320'>
<source src='movie.mp4' type='video/mp4'>
<source src='movie.webm' type='video/webm'>
<source src='movie.ogv' type='video/ogg'>
</video><br>
<button onclick='playvideo()'>Play Video</button>
<button onclick='pausevideo()'>Pause Video</button>
<script>
function playvideo()
{
O('myvideo').play()
}
function pausevideo()
{
O('myvideo').pause()
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>HTML5/Flash Video</title>
</head>
<body>
<video width='560' height='320' controls>
<object width='560' height='320'
type='application/x-shockwave-flash'
data='flowplayer.swf'>
<param name='movie' value='flowplayer.swf'>
<param name='flashvars'
value='config={"clip": {
"url": "movie.mp4",
"autoPlay":false, "autoBuffering":true}}'>
</object>
<source src='movie.mp4' type='video/mp4'>
<source src='movie.webm' type='video/webm'>
<source src='movie.ogv' type='video/ogg'>
</video>
</body>
</html>
function O(i) { return typeof i == 'object' ? i : document.getElementById(i) }
function S(i) { return O(i).style }
function C(i) { return document.getElementsByClassName(i) }
<!DOCTYPE html>
<html>
<head>
<title>Playing Audio</title>
</head>
<body><br><pre>
<audio controls>
<source src='audio.m4a' type='audio/aac'>
<source src='audio.mp3' type='audio/mp3'>
<source src='audio.ogg' type='audio/ogg'>
</audio>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Playing Audio with JavaScript</title>
<script src='OSC.js'></script>
</head>
<body>
<audio id='myaudio'>
<source src='audio.m4a' type='audio/aac'>
<source src='audio.mp3' type='audio/mp3'>
<source src='audio.ogg' type='audio/ogg'>
</audio>
<button onclick='playaudio()'>Play Audio</button>
<button onclick='pauseaudio()'>Pause Audio</button>
<script>
function playaudio()
{
O('myaudio').play()
}
function pauseaudio()
{
O('myaudio').pause()
}
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<title>Web Messaging (b)</title>
<style>
#output {
font-family:"Courier New";
white-space:pre;
}
</style>
<script src='OSC.js'></script>
</head>
<body>
<div id='output'>Received messages will display here</div>
<script>
window.onmessage = function(event)
{
O('output').innerHTML =
'<b>Origin:</b> ' + event.origin + '<br>' +
'<b>Source:</b> ' + event.source + '<br>' +
'<b>Data:</b> ' + event.data
}
</script>
</body>
</html>
var n = 1
search: while (true)
{
n += 1
for (var i = 2; i <= Math.sqrt(n); i += 1)
{
if (n % i == 0) continue search
}
postMessage(n)
}
function O(i) { return typeof i == 'object' ? i : document.getElementById(i) }
function S(i) { return O(i).style }
function C(i) { return document.getElementsByClassName(i) }
var n = 1
search: while (true)
{
n += 1
for (var i = 2; i <= Math.sqrt(n); i += 1)
{
if (n % i == 0) continue search
}
postMessage(n)
}
output { font-weight:bold; }
<!DOCTYPE html>
<html> <!-- geolocation.html -->
<head>
<title>Geolocation Example</title>
</head>
<body>
<script>
if (typeof navigator.geolocation == 'undefined')
alert("Geolocation not supported.")
else
navigator.geolocation.getCurrentPosition(granted, denied)
function granted(position)
{
var lat = position.coords.latitude
var lon = position.coords.longitude
alert("Permission Granted. You are at location:
"
+ lat + ", " + lon +
"
Click 'OK' to load Google Maps with your location")
window.location.replace("https://www.google.com/maps/@"
+ lat + "," + lon + ",8z")
}
function denied(error)
{
var message
switch(error.code)
{
case 1: message = 'Permission Denied'; break;
case 2: message = 'Position Unavailable'; break;
case 3: message = 'Operation Timed Out'; break;
case 4: message = 'Unknown Error'; break;
}
alert("Geolocation Error: " + message)
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Local Storage</title>
</head>
<body>
<script>
if (typeof localStorage == 'undefined')
{
alert("Local storage is not available")
}
else
{
loc = localStorage.getItem('loc')
lan = localStorage.getItem('lan')
alert("The current values of 'loc' and 'lan' are
" +
loc + " / " + lan + "
Click OK to assign values")
localStorage.setItem('loc', 'USA')
localStorage.setItem('lan', 'English')
loc = localStorage.getItem('loc')
lan = localStorage.getItem('lan')
alert("The current values of 'loc' and 'lan' are
" +
loc + " / " + lan + "
Click OK to clear values")
localStorage.removeItem('loc')
localStorage.removeItem('lan')
loc = localStorage.getItem('loc')
lan = localStorage.getItem('lan')
alert("The current values of 'loc' and 'lan' are
" +
loc + " / " + lan)
}
</script>
</body>
</html>
<!DOCTYPE html>
<html> <!-- webworkers.html -->
<head>
<title>Web Workers</title>
<script src='OSC.js'></script>
</head>
<body>
Current highest prime number:
<span id='result'>0</span>
<script>
if (!!window.Worker)
{
var worker = new Worker('worker.js')
worker.onmessage = function (event)
{
O('result').innerText = event.data;
}
}
else
{
alert("Web workers not supported")
}
</script>
</body>
</html>
<!DOCTYPE html>
<html manifest='clock.appcache'>
<head>
<title>Offline Web Apps</title>
<script src='OSC.js'></script>
<script src='clock.js'></script>
<link rel='stylesheet' href='clock.css'>
</head>
<body>
The time is: <output id='clock'></output>
</body>
</html>
<!DOCTYPE HTML>
<html> <!-- draganddrop.html -->
<head>
<title>Drag and Drop</title>
<script src='OSC.js'></script>
<style>
#dest {
background:lightblue;
border :1px solid #444;
width :320px;
height :100px;
padding :10px;
}
</style>
</head>
<body>
<div id='dest' ondrop='drop(event)' ondragover='allow(event)'></div><br>
Drag the images below into the above element<br><br>
<img id='source1' src='image1.png' draggable='true' ondragstart='drag(event)'>
<img id='source2' src='image2.png' draggable='true' ondragstart='drag(event)'>
<img id='source3' src='image3.png' draggable='true' ondragstart='drag(event)'>
<script>
function allow(event)
{
event.preventDefault()
}
function drag(event)
{
event.dataTransfer.setData('image/png', event.target.id)
}
function drop(event)
{
event.preventDefault()
var data=event.dataTransfer.getData('image/png')
event.target.appendChild(O(data))
}
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<title>Web Messaging (a)</title>
<script src='OSC.js'></script>
</head>
<body>
<iframe id='frame' src='example26-11.html' width='360' height='75'></iframe>
<script>
count = 1
setInterval(function()
{
O('frame').contentWindow.postMessage('Message ' + count++, '*')
}, 1000)
</script>
</body>
</html>
CACHE MANIFEST
clock.html
OSC.js
clock.css
clock.js