xo-bus
Version:
Cross Origin Event Bus
51 lines (45 loc) • 1.64 kB
HTML
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>My page title</title>
<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300|Lobster+Two' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="style.css">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<h2>Page 2</h2>
<ul></ul>
<form>
<label for="message-input">Send a message</label>
<input type="text" id="message-input" autofocus>
<button>Send Message</button>
</form>
<script src="http://localhost:8002/lib/eventbus.js"></script>
<script >
var list = document.querySelector('ul');
const eb = new CrossOriginEventBus({name: 'page3'})
var input = document.getElementById('message-input');
var button = document.querySelector('button');
button.addEventListener('click', onClick);
function onClick(e) {
e.preventDefault();
eb.send({type: 'input', value: input.value})
}
eb.subscribe('added', () => {
input.value = '';
})
eb.subscribe('input', (e) => {
var listItem = document.createElement('li');
listItem.textContent = e.data.value;
list.appendChild(listItem);
eb.send({type: 'added', value: 'Message received by IFrame: "' + e.data.value + '"'});
})
eb.request('test').then((resp) => console.log('done', resp))
</script>
</body>
</html>