Popup Window + Get Text From Popup Window

I have this javascript. Which opens a popup when you click on a button. Then it checks every 2 seconds if the text in the popups contains a certain string.

It works the first time it does textsearch() but after that it always gives an error what is wrong?

Also, why does it give an error if I leave the window it creates open, reload this page with the javascript, and click on the button again? And how to prevent this error?

<html>
<head>
<script language="javascript">

window.onerror = catcherror;
var wnd = null;

function linkwindow()
{
      wnd = window.open("http://www.kingsofchaos.com/recruit.php?uniqid=36tcb54e", "LinkWindow");
      textsearch();
}

function textsearch()
{
      if (wnd)
      {
            var txt = wnd.document.documentElement.innerHTML;
            if (txt.indexOf("is building an army of") != -1)
            {
                  document.forms[0].msg.value = 'OK!';
                  self.status = "message found";
                  return;      
            }
            self.status = 'message not found (retry in two seconds)';
      }
      setTimeout('textsearch()', 2000);
}

function catcherror()
{
 alert("Error");
}
</script>
</head>
<body>
<form>
<input type=button value="link" onclick="linkwindow()">
<input type=text id=msg size=60></textarea>
</form>
</body>
</html>
LVL 5
TheClickMasterAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
venkateshwarrConnect With a Mentor Commented:

You cannot access properties of a webpage that is outside of your domain...
So this is not going to work.
0
 
ZvonkoConnect With a Mentor Systems architectCommented:
The upper does say: if your source is not running on a page with this domain: "*.kingsofchaos.com", then it will not work.
So what is your url for upper page?
If the domain is same, why do you use JavaScript for the check? Why not php?
If you want to do it on client side, can you use ActiveX?
0
 
TheClickMasterAuthor Commented:
The restriction with security, thats what I feared. The URL is not the same domain as the other page so I can't access it.

I could use ActiveX, but that would make it IE only?

0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
ZvonkoSystems architectCommented:
Yeap.
0
 
TheClickMasterAuthor Commented:
Ok then it will not be possible.
So is there really no workaround or anything?
0
 
ZvonkoSystems architectCommented:
No there is not.
And it has a good reason: Security
Imagine that your window could read any other frame or window. Then you would be able to read fields and text from other domains and examine passwords, credit card numbers and so on.

0
 
ZvonkoSystems architectCommented:
By the way, your script is allowed to iverwrite the foregn domain window, but not to read it. Reading is more dangerous then writing.
The exception of that security SandBox model is the HTA page. It is exactly the same as html page but runs as an application.
Therefore it can not be displayed from a web server.
It can run only localy when renamed to extension *.hta and only in IE browser.


0
 
TheClickMasterAuthor Commented:
Ah this is my first question and I didnt know how to split points :(
I will ask to have some points given to Zvonko.

0
 
ZvonkoSystems architectCommented:
No problem.
It is only funny because it relates to your account name :)
0
 
TheClickMasterAuthor Commented:
My website http://theclickmaster.com is what this javascript was meant for =P
0
 
TheClickMasterAuthor Commented:
Allright, thanks a lot Lunchy.
Thanks also to venkateshwarr and Zvonko.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.