Advertisement
Guest User

exchanger.js

a guest
Jul 18th, 2013
453
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. //The browser detection function.
  2. //This function can be used for other purposes also.
  3.  
  4. function UserAgent()
  5. {
  6. //alert("UserAgent");
  7. var b=navigator.appName.toUpperCase();
  8.  
  9. if (b=="NETSCAPE") this.b="ns";
  10. else if (b=="MICROSOFT INTERNET EXPLORER") this.b="ie";
  11. else if (b=="OPERA") this.b="op";
  12. else this.b=b;
  13.  
  14. this.version=navigator.appVersion;
  15. this.v=parseInt(this.version);
  16.  
  17. this.ns=(this.b=="ns" && this.v>=4);
  18. this.ns4=(this.b=="ns" && this.v==4);
  19. this.ns5=(this.b=="ns" && this.v==5);
  20.  
  21. this.ie=(this.b=="ie" && this.v>=4);
  22. this.ie4=(this.version.indexOf('MSIE 4')>0);
  23. this.ie5=(this.version.indexOf('MSIE 5')>0);
  24. this.ie55=(this.version.indexOf('MSIE 5.5')>0);
  25. this.ie6=(this.version.indexOf('MSIE 6')>0);
  26.  
  27. this.op = (this.b=="op");
  28. this.op4 = (this.b=="op" && this.v==4);
  29. this.op5 = (this.b=="op" && this.v==5);
  30. }
  31.  
  32. at=new UserAgent();
  33.  
  34. //if you want to create the frame or layer dynamically, do not
  35. //specify a name, do something like this, new exchanger();
  36.  
  37. function exchanger(name)
  38. {
  39. //alert("exchanger");
  40. //hold the dynamically created iframe or layer
  41. this.lyr = null;
  42.  
  43. //to remember if the iframe or layer is created dynamically.
  44. this.isDynamic = false;
  45.  
  46. this.name=name||"";
  47. this.fakeid=0;
  48.  
  49. if (name == null || name=="")
  50. {
  51. this.isDynamic = true;
  52. this.create();
  53. }
  54. else
  55. {
  56. this.name=name;
  57. if (at.ns4)
  58. {
  59. this.lyr = window.document.layers[this.name];
  60. }
  61. }
  62. }
  63.  
  64. //this function should not be called directly
  65. exchanger.prototype.create=function()
  66. {
  67. //alert("exchanger.prototype.create");
  68. if (at.ns4)
  69. {
  70. this.lyr=new Layer(0);
  71. this.visibility = "hide";
  72. }
  73. else if (at.ie || at.ns5)
  74. {
  75. this.lyr=document.createElement("IFRAME");
  76. this.lyr.width=0;
  77. this.lyr.height=0;
  78. this.lyr.marginWidth=0;
  79. this.lyr.marginHeight=0;
  80. this.lyr.frameBorder=0;
  81. this.lyr.style.visibility="hidden";
  82. this.lyr.style.position="absolute";
  83. this.lyr.src="https://p1.kvcc.edu/gba//blank.html";
  84. this.name="tongIFrame"+window.frames.length;
  85. //this will make IE work.
  86. this.lyr.setAttribute("id",this.name);
  87. //this will make netscape work.
  88. this.lyr.setAttribute("name",this.name);
  89. document.body.appendChild(this.lyr);
  90. }
  91. }
  92.  
  93. exchanger.prototype.sendData=function(url)
  94. {
  95. //alert("exchanger.prototype.sendData");
  96. this.fakeid += 1;
  97. var newurl = "";
  98. if (url.indexOf("?") >= 0)
  99. newurl = url + "&fakeId" + this.fakeid;
  100. else
  101. newurl = url + "?fakeId" + this.fakeid;
  102.  
  103. if (this.isDynamic||at.ns4)
  104. this.lyr.src=newurl;
  105. else
  106. {
  107. if (at.ie || at.ns5 || at.op)
  108. {
  109. //alert("DEBUG!");
  110. //alert(newurl);
  111. //alert(this.name);
  112.  
  113. // original has bug
  114. //window.frames[this.name].document.location.replace(newurl);
  115.  
  116. // works
  117. parent.frames[this.name].location = newurl;
  118.  
  119. //alert("successful");
  120. }
  121. }
  122. }
  123.  
  124.  
  125. exchanger.prototype.retrieveData=function(varName)
  126. {
  127. //lert("exchanger.prototype.retrieveData");
  128. if (at.ns4)
  129. {
  130. return eval("this.lyr." + varName);
  131. }
  132. else if (at.ie || at.ns5 || at.op)
  133. {
  134. return eval("window.frames['" + this.name + "']." + varName);
  135. }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement