469,303 Members | 2,042 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

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

dynamic src of IFRAME

I am ripping my hair out trying to set the src (location.href) of an
IFRAME that i show once a user clicks on a certain link:

function editTimeEntry(timeEntryID, dayID, e) {
var x = e.clientX;
var y = e.clientY;
ew = frames['editPop'];
eF = getObj('editPopID');
eF.style.left = x + 10;
eF.style.top = y + 10;
window.top.frames['editPopID'].location.href =
"controls/editPopup.aspx?id=" + timeEntryID + "&did=" + dayID;
ShowFrame();
}

function ShowFrame() {
if (eF.style.display=="none") {
eF.style.display="black"; // FF Drawing bug
}
eF.style.visibility="visible";
alert("Location:" + document.frames['editPop'].location.href);
}

When the IFRAME is displayed it just shows about:blank and not the
location.href I set for it. After the first time, i click on the same
link and it shows me the correct address in the alert box in
ShowFrame(), but the iframe remains blank. can anyone point me to the
right documentation or help me out? It would be greatly appreciated.
Thank you.

Sean

Jul 23 '05 #1
10 15164
dko...@gmail.com wrote:
I am ripping my hair out trying to set the src (location.href) of an
IFRAME that i show once a user clicks on a certain link:

function editTimeEntry(timeEntryID, dayID, e) {
var x = e.clientX;
var y = e.clientY;
ew = frames['editPop'];
eF = getObj('editPopID');
eF.style.left = x + 10;
eF.style.top = y + 10;
window.top.frames['editPopID'].location.href =
"controls/editPopup.aspx?id=" + timeEntryID + "&did=" + dayID;
ShowFrame();
}

function ShowFrame() {
if (eF.style.display=="none") {
eF.style.display="black"; // FF Drawing bug
}
eF.style.visibility="visible";
alert("Location:" + document.frames['editPop'].location.href);
}

When the IFRAME is displayed it just shows about:blank and not the
location.href I set for it. After the first time, i click on the same
link and it shows me the correct address in the alert box in
ShowFrame(), but the iframe remains blank. can anyone point me to the
right documentation or help me out? It would be greatly appreciated.
Thank you.

Sean


Didn't post your HTML -which leaves people to guess what all those
identifiers correspond to. You're dealing with *two* objects there: a
frame (window) object, with its Location object (location property),
and an element object, which sets the iframe src via its - erm - src
property. Unclear why all the duplication...anyway, the frame object is
referenced via the frame name, not its id as the element object is.

window.top.frames['editPop'].location.href = ....
(or ew.location.href = ....)

<iframe name="editPop"...>

Typo?

eF.style.display="black" <-----

Jul 23 '05 #2
dk****@gmail.com wrote:
<snip>
window.top.frames['editPopID'].location.href =
"controls/editPopup.aspx?id=" + timeEntryID + "&did=" + dayID; <snip> ... just shows about:blank ...

<snip>

All else aside, if you have an IFRAME with "about:blank" as its SRC,
when you assign a relative URL to the corresponding location object what
are you expecting that URL to be relative to?

Richard.
Jul 23 '05 #3
I have tried everything with no luck. It works perfectly in FireFox,
but it DOES NOT work in IE. I have tried the following:

window.frames["editPop"].location = "http://website/address/here"
top.frames["editPop"].location = "http://website/address/here"
document.frames["editPop"].location = "http://website/address/here"
document.top.frames["editPop"].location = "http://website/address/here"
window.top.frames["editPop"].location = "http://website/address/here"

Does anyone know how I can get this to work? It's really aggravating.

Jul 23 '05 #4
dko...@gmail.com wrote:
I have tried everything with no luck. It works perfectly in FireFox,
but it DOES NOT work in IE. I have tried the following:

window.frames["editPop"].location = "http://website/address/here"
top.frames["editPop"].location = "http://website/address/here"
document.frames["editPop"].location = "http://website/address/here"
document.top.frames["editPop"].location = "http://website/address/here" window.top.frames["editPop"].location = "http://website/address/here"

Does anyone know how I can get this to work? It's really aggravating.


How about...

window.self.top.parent.document.frames["editPop"].location.href.com

Seriously...not to beat a dead iframe...

RobB wrote:
Didn't post your HTML -which leaves people
to guess what all those identifiers correspond to.


Your HTML here is the architectural blueprint to the structure of your
document(s). Better to analyze it than just string references together
and pray.

Jul 23 '05 #5
dk****@gmail.com wrote:
window.top.frames['editPopID'].location.href =
"controls/editPopup.aspx?id=" + timeEntryID + "&did=" + dayID;


Have you tried?
top.document.getElementById('editPopID').src = "http://yourPageHere";

Csaba Gabor from Vienna
Jul 23 '05 #6
HA!

top.document.getElementyById('editPopID').src worked.

what a task! thank you very much for your help!

Jul 23 '05 #7
Csaba Gabor wrote:
dk****@gmail.com wrote:
window.top.frames['editPopID'].location.href =
"controls/editPopup.aspx?id=" + timeEntryID +
"&did=" + dayID;


Have you tried?
top.document.getElementById('editPopID').src =
"http://yourPageHere";


It seems a bit unfair to take someone who is probably making a trivial
error (or suffering a minor misconception) in their use of a reliable
cross-browser technique for navigating a frame and sending them off with
an alternative that is significantly less well supported and should not
be expected to work at all according to the applicable standard.

Richard.
Jul 23 '05 #8
Richard Cornford wrote:
Csaba Gabor wrote:
dk****@gmail.com wrote:
window.top.frames['editPopID'].location.href =
"controls/editPopup.aspx?id=" + timeEntryID +
"&did=" + dayID;
Have you tried?
top.document.getElementById('editPopID').src =
"http://yourPageHere";


It seems a bit unfair to take someone who is probably making a trivial
error (or suffering a minor misconception) in their use of a reliable
cross-browser technique for navigating a frame and sending them off with
an alternative that is significantly less well supported


Full ACK
and should not be expected to work at all according to the applicable
standard.


NAK. According to the "applicable standard" (DOM Level 2+), DOM Level 0
references not specified therein should not work at all in HTML user
agents, so the first version should ultimately fail. However, it does
usually work and it does not fail. And since both this is the case and
recent UAs implement interfaces of the W3C DOM, I would consider the
second version somewhat nearer to the "standards" than the first.
(Although I would not recommend it at the moment for the reasons given
above.)

Consider this: (window.)top is proprietary but widely supported (DOM Level
0), and if the Window object referred to by it implemented DOM Level 2
Views it had a `document' property, and if the object referred to by it
would implement the Document interface (interestingly, e.g. the Gecko DOM
implementation yields an object with the prototype HTMLDocument while this
is an identifier of an interface inheriting from Document in DOM Level 2
HTML) and so it would have a getElementById() method which application
with the above argument would return an object implementing the
HTMLIFrameElement interface (which e.g. the Gecko DOM provides) which
would have a `src' property that is not read-only.
PointedEars
Jul 23 '05 #9
Thomas 'PointedEars' Lahn wrote:
Richard Cornford wrote: <snip>
and should not be expected to work at all according to
the applicable standard.

<snip> ... HTMLIFrameElement interface (which e.g.
the Gecko DOM provides) which would have a
`src' property that is not read-only.


<quote cite="W3C Level 2 HTML DOM; HTMLIFrameElement interface">
src - of type DOMString
A URI [IETF RFC 2396] designating the initial frame contents. See the
src attribute definition in HTML 4.01.
</quote>

It may not be read-only but what does it mean to assign a URI to "the
initial frame contents"? Now if the spec said "current frame contents"
then an assignment to - src - might be expected to result in navigation,
but assigning to the initial content would do what? A frame can only
have one "initial frame contents".

As a means of navigation, assigning a value to the - src - property of
an IFRAME element should not be expected to work, according to the
applicable standard.

Richard.
Jul 23 '05 #10
Richard Cornford wrote:
Thomas 'PointedEars' Lahn wrote:
Richard Cornford wrote: <snip>
and should not be expected to work at all according to
the applicable standard.

<snip>
... HTMLIFrameElement interface (which e.g.
the Gecko DOM provides) which would have a
`src' property that is not read-only.


<quote cite="W3C Level 2 HTML DOM; HTMLIFrameElement interface">
src - of type DOMString
A URI [IETF RFC 2396] designating the initial frame contents.

^^^^^^^ See the src attribute definition in HTML 4.01.
</quote>
[...]


Point taken, thanks. Should be changed to either `current'
or read-only, though. W3C member anyone? ;-)
PointedEars
--
What one man can invent another can discover.
-- Sherlock Holmes in Sir A.C. Doyle's
"The Adventure of the Dancing Men"
Jul 23 '05 #11

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

26 posts views Thread by shlomi.schwartz | last post: by
1 post views Thread by mike888 | last post: by
1 post views Thread by redbaks | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by harlem98 | last post: by
1 post views Thread by Geralt96 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.