Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > Allow user to access link in a pop up iframe

Reply
Thread Tools

Allow user to access link in a pop up iframe

 
 
jeet_sen
Guest
Posts: n/a
 
      03-23-2006
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

 
Reply With Quote
 
 
 
 
marss
Guest
Posts: n/a
 
      03-23-2006

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.

 
Reply With Quote
 
 
 
 
jeet_sen
Guest
Posts: n/a
 
      03-24-2006
Hi marss,
Yes !!! It worked as I wanted. Thanks a lot.
Regards,
Suvajit

 
Reply With Quote
 
jeet_sen
Guest
Posts: n/a
 
      03-27-2006
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=javascriptpenWindow("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?

 
Reply With Quote
 
marss
Guest
Posts: n/a
 
      03-27-2006

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=javascriptpenWindow("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"?

 
Reply With Quote
 
jeet_sen
Guest
Posts: n/a
 
      03-28-2006
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.

 
Reply With Quote
 
marss
Guest
Posts: n/a
 
      03-28-2006
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='javascriptpenWindow(\"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.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to use an iframe as a link (make the whole iframe clickable) mi HTML 4 05-21-2008 10:13 PM
How do I let people access the internet via an access point but not allow them access to my network yar Wireless Networking 4 09-21-2004 03:48 AM
How To pop content into bottom IFrame from top IFrame nc Javascript 0 08-10-2004 01:19 PM
Get form values from iframe (1) to iframe (2) inside a layer in iframe (1) Daedalous Javascript 3 01-16-2004 11:08 AM
After the execution of frame.iframe.document.designMode="On" , I lost the access to iframe, it says permission denied bhaskarna@yahoo.com Javascript 0 07-17-2003 05:05 AM



Advertisments