469,270 Members | 1,026 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,270 developers. It's quick & easy.

Allow user to access link in a pop up iframe

Hi,
I have generated a table and have attached a pop up to display at
onmouseover event of each cell.
For each cell the pop up will display cell specific detailed data. I
have generated the pop up using iframe and it is working fine.
On mouseout event of each cell I have destroyed the created the
iframe.
This is working fine.
But if I try to move the cursor over the iframe, the mouseout event
is fired and my iframe is vanishing off.
Can anyone let me know which event i can attach prior to mouseout
event so that I can access the iframe and click on a link inside the
iframe object.

Regards,
Suvajit

Mar 23 '06 #1
6 4594

jeet_sen wrote:
Hi,
I have generated a table and have attached a pop up to display at
onmouseover event of each cell.
For each cell the pop up will display cell specific detailed data. I
have generated the pop up using iframe and it is working fine.
On mouseout event of each cell I have destroyed the created the
iframe.
This is working fine.
But if I try to move the cursor over the iframe, the mouseout event
is fired and my iframe is vanishing off.
Can anyone let me know which event i can attach prior to mouseout
event so that I can access the iframe and click on a link inside the
iframe object.

Regards,
Suvajit


You can hide popup not immediately but after some delay. I put here
some pseudocode as example:

html:
<td onmouseout="mouseOutCell()" .....

code:
var hidePopupTimeout = null;

function mouseOutCell()
{
hidePopupAfterTimeout();

//f means iframe object
f.contentWindow.document.onmouseover = mouseOverIFrame;
f.contentWindow.document.onmouseout =
hidePopupAfterTimeout;
}

function mouseOverIFrame()
{
if (hidePopupTimeout)
clearTimeout(hidePopupTimeout);
}

function hidePopupAfterTimeout()
{
if (hidePopupTimeout)
clearTimeout(hidePopupTimeout);
hidePopupTimeout = setTimeout("hidePopup()", 500);
}

function hidePopup()
{
//.......
}

Maybe it helps.

Mar 23 '06 #2
Hi marss,
Yes !!! It worked as I wanted. Thanks a lot.
Regards,
Suvajit

Mar 24 '06 #3
Hi,
My Iframe contains a link. This link is actually a local text file. I
made this link to call a function openWindow to display the content of
the local file in a new window. My openWindow fucntion looks like this:
function openNewWindow(url)
{
new_window = window.open(url,'Log
details','toolbar=0,menubar=0,resizable=1,dependen t=1,status=0,width=400,height=300,left=25,top=25') ;
}

And my iframe code is as follows:

var contents = document.createElement('IFRAME');
contents.contentDocument.write(msg);
msg = "<BR><span style='color:" + col + "; font-size:11pt'><b>" + name
+ ' : </b><a href=javascript:openWindow("file://' + value + '")>' +
value + '</a></span>';
contents.contentDocument.write(msg);

where value is a valid pathname to a text file.

But everytime I click this hyperlink javascript states : openWindow is
not defined

I defined the openWindowd function in contents.src .i.e detailBox.html

Where I am going wrong?

Mar 27 '06 #4

jeet_sen wrote:
.....
function openNewWindow(url)
{ .....
var contents = document.createElement('IFRAME');
contents.contentDocument.write(msg);
msg = "<BR><span style='color:" + col + "; font-size:11pt'><b>" + name
+ ' : </b><a href=javascript:openWindow("file://' + value + '")>' +
value + '</a></span>';
contents.contentDocument.write(msg);

where value is a valid pathname to a text file.

But everytime I click this hyperlink javascript states : openWindow is
not defined

I defined the openWindowd function in contents.src .i.e detailBox.html

Where I am going wrong?


Maybe you are simply made a mistake: define function "openNewWindow"
and call "openWindow"?

Mar 27 '06 #5
Hi marss,
No I have checked that out. My mail composition had the error.
But can you tell me that whether it is possible to open an new window
from an iframe dynamically.

Mar 28 '06 #6
jeet_sen wrote:
My Iframe contains a link. This link is actually a local text file. I
made this link to call a function openWindow to display the content of
the local file in a new window. e to a text file. ......
I defined the openWindowd function in contents.src .i.e detailBox.html

Where I am going wrong?


If you need to load some url in the iframe and add additional elements
after it, you should not use document.write() method because it opens
and clears the document(of course, if the document is not in the
process of being opened and written). The additional elements have to
be added as objects (use document.createElement()).

function loadFrame()
{
var contents = document.createElement('IFRAME');
contents.id="frmId";
contents.src="frame.htm";
document.body.appendChild(contents);
//set delay before element addition
setTimeout("addAdditionalElements()", 50);
}

function addAdditionalElements()
{
var f = document.getElementById("frmId");
var div = f.contentWindow.document.createElement("DIV");
div.innerHTML = "<a
href='javascript:openWindow(\"http://some.html\");'>Click</a>";
f.contentWindow.document.body.appendChild(div);
}

There is an important aspect of referencing a newly created window. IE
tends to race ahead of script execution (presumably to improve
performance). The downside of this feature is that in the case of a
newly created external object, a reference to the new object may not be
valid when the subsequent statements execute in the shadows. To prevent
this race-ahead execution from causing script errors, you need to place
statements referencing the object in a separate function that begins
executing after the current function thread completes. The setTimeout()
method is the mechanism that assists in this task.

Besides, I advise to remove space in a new window name in the
openWindow() function:
new_window = window.open(url,'Logdetails'..
instead of
new_window = window.open(url,'Log details'...
It cause "Invalid argument" error in IE.

Mar 28 '06 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

16 posts views Thread by Ben Sehara | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.