I have a Java Script loop which will be polling if any child windows are closed.
The code is working fine in all versions of IE in the local system.
But when we invoke the application via CITRIX and IE6 then we are getting the PERMISSION DENIED error.
and the same is not coming with the CITRIX and IE7.

This is the code.

function singleChildWinClosed()
{
	if (closeOtherChildWinRunning==false && logout==false )
	{
		var j=0;
		for(j=0;j<track.length;j++)
		{
			if ( (track[j]) && (! track[j].closed) )
				{
					// do nothing
					// just watch when it is going to be closed
				}
			else
				{
					var k=0;
					var l=0;
					var temp=new Array();
					noOfChildWin=noOfChildWin-1;
					for(k=0;k<track.length;k++)
					{
						if (k!=j)
						{
							temp[l]=track[k];
							l=l+1;
						}
						
					}
					track=temp;
					if (noOfChildWin==-1)
					{
					 clearInterval(chksingleChildWinClosedNow);
					 chksingleChildWinClosedNow='';
					 var f = document.forms[0];
					 if (f)
					 {
						f.elements["userAction"].value = "<%=ControlPage.SYNCHRONIZE %>";
						f.submit();
					 }					 
					}					
					break;							
				}
		}
		
	}

The error is cmng at this like

if ( (track[j]) && (! track[j].closed) )

Please help me. This is very urgent.

PERMISSION DENIED normally arises from like a cross-domain issue, which would be like something outside the code you like posted, like.

Airshow

Member Avatar for stbuchok

Check browser permission differences. Also is it mandatory to test this against IE6 (it's 10 years old). I work for a company that is strict on making sure it works in the most browsers possible and we don't even support it.

The other thing to check is does this only happen when you are using CITRIX?

First of all, Thanks your replies guys..

@Airshow: If this happens outside of the code, what might be the reason be? Is there any workaround?
I am pretty sure that this is not a cross-domain issue. As the whole site is hosted in the a single weblogic server. And we use http only to access all the pages.

@stbuchok: This is only happening when we access the application with IE6 via Citrix. And the same error is not coming in IE7 when accessed via Citrix. And if we access without Citrix, regardless of the version of IE its working fine.

This is very important and urgent. Please provide the workarounds.

Member Avatar for stbuchok

If it's not happening without CITRIX, you are probably going to need to ask Network Admins that are familiar with CITRIX as you will probably be able to get a better answer from them. This sounds like a CITRIX permissions issue as to what is allowed to execute.

Thank you very much stbuchok.
Any idea about what exactly needs to be changed over the Citrix to solve this problem?

Thinking out loud here .....

As far as I can tell from the code and what you say, "PERMISSION DENIED" is a client-side error message, and it's a browser security issue. As I said, probably a cross-domain issue, and possibly CITRIX-induced.

I'm not a CITRIX expert so I don't know but is it possible that it does some sort of domain mapping or does it possibly serve different pages under different protocols (eg. http vs https)?

Questions to ask yourself:

  1. Be certain - is "PERMISSION DENIED" server- or browser-generated?
  2. Is the page from which singleChildWinClosed() is called the same page that opened the child windows? If not, then it is possible that it doesn't have the authority to query them.
  3. What does <%=ControlPage.SYNCHRONIZE %> expand to in the served page? Could this be the source of the problem?

Only questions I'm afraid, not answers, but hopefully some clues.

Airshow

There's a suggestion here that javascript "Permission Denied", in the context of child windows, can be overcome by using a signed script.

I'm not sure exactly how to do that (or which script needs to be signed), but maybe worth exploring.

Airshow

I have upgraded my Citrix App to IE-7. This solved the issue. Thanks all for replying on this post.

I have a Java Script loop which will be polling if any child windows are closed.
The code is working fine in all versions of IE in the local system.
But when we invoke the application via CITRIX and IE6 then we are getting the PERMISSION DENIED error.
and the same is not coming with the CITRIX and IE7.

This is the code.

function singleChildWinClosed()
{
	if (closeOtherChildWinRunning==false && logout==false )
	{
		var j=0;
		for(j=0;j<track.length;j++)
		{
			if ( (track[j]) && (! track[j].closed) )
				{
					// do nothing
					// just watch when it is going to be closed
				}
			else
				{
					var k=0;
					var l=0;
					var temp=new Array();
					noOfChildWin=noOfChildWin-1;
					for(k=0;k<track.length;k++)
					{
						if (k!=j)
						{
							temp[l]=track[k];
							l=l+1;
						}
						
					}
					track=temp;
					if (noOfChildWin==-1)
					{
					 clearInterval(chksingleChildWinClosedNow);
					 chksingleChildWinClosedNow='';
					 var f = document.forms[0];
					 if (f)
					 {
						f.elements["userAction"].value = "<%=ControlPage.SYNCHRONIZE %>";
						f.submit();
					 }					 
					}					
					break;							
				}
		}
		
	}

The error is cmng at this like

if ( (track[j]) && (! track[j].closed) )

Please help me. This is very urgent.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.