| a/test.html | b/test.html | ||
|---|---|---|---|
... |
... |
||
| 678 | <!DOCTYPE html> |
678 | <!DOCTYPE html> |
| 679 | <html lang="en"> |
679 | <html lang="en"> |
| 680 | <head> |
680 | <head> |
| 681 | <meta charset="UTF-8"> |
681 | <meta charset="UTF-8"> |
| 682 | <title>Title</title> |
682 | <title>Title</title> |
| 683 | <script src="wvdetection.js"></script> |
||
| 683 | </head> |
684 | </head> |
| 684 | <body onload="onBodyLoad()"> |
685 | <body onload="onBodyLoad()"> |
| 685 | <script> |
686 | <script> |
| 686 | window.addEventListener("message", receiveMessage, false); |
687 | |
| 687 | 688 | function onBodyLoad() { |
|
| 688 | let url0, url1, activeUrl, urlSet = false, timer = -1; |
689 | const wvDetection = new WVDetection("frame"); |
| 689 | 690 | wvDetection.setWebvisuUrls(["http://localhost:8080/webvisu.htm", "http://localhost:8080/webvisu.htm"]); |
|
| 690 | function onBodyLoad() { |
691 | wvDetection.start(); |
| 691 | url0 = document.getElementById("url0"); |
692 | } |
| 692 | url1 = document.getElementById("url1"); |
693 | </script> |
| 693 | } |
694 | <iframe id="frame"></iframe> |
| 694 | 695 | <br><br> |
|
| 695 | function receiveMessage(event) { |
||
| 696 | if (activeUrl.startsWith(event.origin)) { |
||
| 697 | if (timer !== -1) { |
||
| 698 | clearTimeout(timer); |
||
| 699 | timer = -1; |
||
| 700 | console.log("Received messages. Killing timer!"); |
||
| 701 | } |
||
| 702 | var message = event.data; |
||
| 703 | console.log(message); |
||
| 704 | if (message === "--INFO--\"Still polling the registration of the visualization. Is the visu stopped?\"") { |
||
| 705 | console.log("Webvisu stopped? Switching to different url"); |
||
| 706 | setTimeout(switchToDifferentWebvisu, 1000); |
||
| 707 | } |
||
| 708 | if (message === "Error while processing the visualization: Sending service aborted") { |
||
| 709 | console.log("Download? Switching to different url"); |
||
| 710 | setTimeout(switchToDifferentWebvisu, 1000); |
||
| 711 | } |
||
| 712 | if (message === "--INFO--\"Triing to reconnect after error\"") { |
||
| 713 | console.log("Error? Switching to different url"); |
||
| 714 | setTimeout(switchToDifferentWebvisu, 1000); |
||
| 715 | } |
||
| 716 | } |
||
| 717 | } |
||
| 718 | |||
| 719 | function setURL() { |
||
| 720 | document.getElementById('frame').src = url0.value; |
||
| 721 | url0.disabled = true; |
||
| 722 | url1.disabled = true; |
||
| 723 | document.getElementById("button").disabled = true; |
||
| 724 | activeUrl = url0.value; |
||
| 725 | urlSet = true; |
||
| 726 | } |
||
| 727 | |||
| 728 | function onLoad() { |
||
| 729 | if (urlSet) { |
||
| 730 | timer = setTimeout(function () { |
||
| 731 | console.log("No message received after 5 seconds, switching to different webvisu."); |
||
| 732 | switchToDifferentWebvisu(); |
||
| 733 | }, 5000); |
||
| 734 | } |
||
| 735 | } |
||
| 736 | |||
| 737 | function switchToDifferentWebvisu() { |
||
| 738 | if (activeUrl === url0.value) { |
||
| 739 | activeUrl = url1.value; |
||
| 740 | } else if (activeUrl === url1.value) { |
||
| 741 | activeUrl = url0.value; |
||
| 742 | } else { |
||
| 743 | console.error("Unexpected settings! Abort!"); |
||
| 744 | return; |
||
| 745 | } |
||
| 746 | document.getElementById('frame').src = activeUrl; |
||
| 747 | } |
||
| 748 | |||
| 749 | function onError() { |
||
| 750 | console.log("onError"); |
||
| 751 | } |
||
| 752 | </script> |
||
| 753 | <iframe id="frame" onload="onLoad()" onerror="onError()"></iframe> |
||
| 754 | <br><br> |
||
| 755 | <label for="url0">Url0:</label> |
||
| 756 | <input type="text" id="url0" name="url0" value="http://localhost:8080/webvisu.htm"><br><br> |
||
| 757 | <label for="url1">Url1:</label> |
||
| 758 | <input type="text" id="url1" name="url1" value="http://localhost:8080/webvisu.htm"><br><br> |
||
| 759 | <button type="button" id="button" onclick="setURL()">Change</button> |
||
| 760 | |||
| 761 | |||
| 762 | </body> |
696 | </body> |
| 763 | </html> |
697 | </html> |