dynamic src of IFRAME

Discussion in 'Javascript' started by dkode8@gmail.com, Apr 27, 2005.

  1. Guest

    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
    , Apr 27, 2005
    #1
    1. Advertising

  2. RobB Guest

    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" <-----
    RobB, Apr 27, 2005
    #2
    1. Advertising

  3. 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.
    Richard Cornford, Apr 27, 2005
    #3
  4. Guest

    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.
    , Apr 28, 2005
    #4
  5. RobB Guest

    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.
    RobB, Apr 29, 2005
    #5
  6. Csaba Gabor Guest

    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
    Csaba Gabor, Apr 29, 2005
    #6
  7. Guest

    HA!

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

    what a task! thank you very much for your help!
    , Apr 29, 2005
    #7
  8. Csaba Gabor wrote:
    > 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.
    Richard Cornford, Apr 30, 2005
    #8
  9. Richard Cornford wrote:

    > Csaba Gabor wrote:
    >> 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
    Thomas 'PointedEars' Lahn, May 8, 2005
    #9
  10. 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.
    Richard Cornford, May 8, 2005
    #10
  11. 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"
    Thomas 'PointedEars' Lahn, May 9, 2005
    #11
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Steve Richter

    <txt src= ...> equivalent of <img src= ...>

    Steve Richter, Feb 8, 2006, in forum: ASP .Net
    Replies:
    3
    Views:
    2,057
    Laurent Bugnion
    Feb 9, 2006
  2. Greg Johnson
    Replies:
    4
    Views:
    3,047
  3. Replies:
    1
    Views:
    1,598
    Alex Hunsley
    Mar 23, 2007
  4. Soren Vejrum
    Replies:
    4
    Views:
    514
    Lasse Reichstein Nielsen
    Jul 5, 2003
  5. seans

    dynamic src of IFRAME

    seans, Aug 30, 2005, in forum: Javascript
    Replies:
    2
    Views:
    186
    seans
    Aug 31, 2005
Loading...

Share This Page