Some experiments with web applications
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.2 KiB

11 years ago
  1. /**
  2. * Created with JetBrains WebStorm.
  3. * User: torstenmeissner
  4. * Date: 24.02.13
  5. * Time: 22:38
  6. * To change this template use File | Settings | File Templates.
  7. */
  8. // server url
  9. var serverUrl = "http://widgets.vvo-online.de/abfahrtsmonitor/";
  10. // xmlhttp object function
  11. function getHTTPObject() {
  12. console.log("xml http object function");
  13. var xhr;
  14. if(window.XMLHttpRequest) {
  15. xhr = new XMLHttpRequest();
  16. } else if(window.ActiveXObject) {
  17. xhr = new ActiveXObject("Msxml2.XMLHTTP");
  18. }
  19. return xhr;
  20. }
  21. // ajax call function
  22. function ajaxCall(dataUrl, outputElement, callback) {
  23. console.log("ajax function");
  24. // get the xmlhttp object which is supported
  25. var request = getHTTPObject();
  26. outputElement.innerHTML = "Lade Daten ...";
  27. request.onreadystatechange = function() {
  28. if(request.readyState === 4 && request.status === 200) {
  29. //save ajax response
  30. var response = decodeHTML(request.responseText);
  31. // check if callback is a function
  32. if(typeof callback === "function") {
  33. callback(response);
  34. }
  35. }
  36. };
  37. request.open("get", dataUrl, true);
  38. request.send(null);
  39. }
  40. // wrap all in anonymous function to get out of global scope
  41. (function() {
  42. console.log("anonymous function");
  43. // get the search form
  44. var searchForm = document.getElementById("search-form");
  45. // haltestelle object
  46. var haltestelle = {
  47. getInfo : function(event) {
  48. console.log("getInfo function");
  49. // prevent submit default behaviour
  50. event.preventDefault();
  51. // get output area
  52. var target = document.getElementById("output");
  53. var hstName = document.getElementById("q").value;
  54. var hstUrl = serverUrl + "Abfahrten.do?ort=dresden&hst=" + hstName;
  55. ajaxCall(hstUrl, target, function(data) {
  56. target.innerHTML = "";
  57. target.innerHTML = "<p>" + data + "</p>";
  58. });
  59. }
  60. };
  61. //event listeners
  62. searchForm.addEventListener("submit", haltestelle.getInfo, false);
  63. })(); // end of anonymous function