User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the JavaScript / DHTML / AJAX section within the Web Development category of DaniWeb, a massive community of 373,930 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,240 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our JavaScript / DHTML / AJAX advertiser: Lunarpages Web Hosting

JavaScript's window.opener

Join Date: Jun 2003
Posts: 11
Reputation: sooim3 is an unknown quantity at this point 
Rep Power: 6
Solved Threads: 0
sooim3 sooim3 is offline Offline
Newbie Poster

JavaScript's window.opener

  #1  
Jul 28th, 2003
Hello, I've been trying to find something about why window.opener doesn't work for IE (I'm using 6.0) when I use the window.opener in a separate JavaScript file. It works without any problem when I use Mozilla/Netscape, but not for IE.

The implementations I've seen in my searching for an answer so far, have all been 'in-line' examples how to manage but I haven't found any example yet with separate JavaScript file.

I've got two XHTML documents that are connected to two different JavaScript files:

The first XHTML document:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
   <head>
      <title>Test first window</title>
      <meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1" />
   </head>
   <body>
      <h2>Test first window</h2>
      <hr />
      <div class="left">
         <p>
            Open a new browser window:
            <input id="openNewWindow" type="text" size="55"
               value="commsecondwindow.html" />
            <input id="button1" type="button" value="Open" />
         </p>
         <p>
            Close the browser window:&nbsp;&nbsp;&nbsp;
            <input id="button2" type="button" value="Close" />
         </p>
         <p id="textString">
         </p>
         <p id="timeString">
         </p>
         <p id="testString">
         </p>
      </div>
      <script type="text/javascript" src="commfirstwindow.js"></script>
      <noscript><p>Your browser does not support javascript.</p></noscript>
   </body>
</html>

...and the javascript for it:
// For IE4+
ie=(document.all)?true:false;

// For Mozilla
dom=((document.getElementById) && (!ie))?true:false;

function setEventByID(id, ev, fu) {
   if (dom) {
      document.getElementById(id).addEventListener(ev, fu, false);
   }
   if (ie) {
      document.getElementById(id).attachEvent('on' + ev, fu);
   }
}



var newWindow;

function openNewWindow() {
   var url=document.getElementById('openNewWindow').value;
   newWindow=window.open(url, 'newWindow', '', '');
   newWindow.creator=self;
}
setEventByID('button1', 'click', openNewWindow);


// Close the new window

function closeWindow() {
   if (newWindow!=null) {
      newWindow.close();
   }
}
setEventByID('button2', 'click', closeWindow);

The second XHTML document:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
   <head>
      <title>Test second window</title>
      <meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1" />
   </head>
   <body>
      <h2>Test second window</h2>
      <hr />
      <div class="left">
         <p>
            Send a text to the main window:
            <input id="testText" type="text" size="55"
               value="This is a test text for the main window!" />
            <input id="button3" type="button" value="Send text" />
         </p>
      </div>
      <script type="text/javascript" src="commsecondwindow.js"></script>
      <noscript><p>Your browser does not support javascript.</p></noscript>
   </body>
</html>

...and the javascript code:
// For IE4+
ie=(document.all)?true:false;

// For Mozilla
dom=((document.getElementById) && (!ie))?true:false;

function setEventById(id, ev, fu) {
   if (dom) {
      document.getElementById(id).addEventListener(ev, fu, false);
   }
   if (ie) {
      document.getElementById(id).attachEvent('on' + ev, fu);
   }
}

// Global variables
var initialString="Testing to insert text into main window...";
var initialTextNode=document.createTextNode(initialString);
var timeNode;
var testNode;


window.opener.document.getElementById('textString').appendChild(initialTextNode);


function currentTime() {
   var today=new Date();
   if (timeNode==null) {
      timeNode=document.createTextNode(today.toLocaleTimeString());
      window.opener.document.getElementById('timeString').appendChild(timeNode);
   }
   else {
      window.opener.document.getElementById('timeString').removeChild(timeNode);
      timeNode=document.createTextNode(today.toLocaleTimeString());
      window.opener.document.getElementById('timeString').appendChild(timeNode);
   }
}
window.setInterval(currentTime, 1000);

function sendTestText() {
   var testTheString=document.getElementById('testText').value;
   testNode=document.createTextNode(testTheString);
   window.opener.document.getElementById('testString').appendChild(testNode);
}
setEventById('button3', 'click', sendTestText);

Does anyone know why the above works well with Mozilla/Netscape but doesn't work with IE? Am I doing something wrong in the code?

/Soo-Im
AddThis Social Bookmark Button
Reply With Quote  
All times are GMT -4. The time now is 5:54 pm.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC