Results 1 to 7 of 7

Thread: BUG FOUND: in Iframe SSI script II when refreshing page

  1. #1
    Join Date
    Mar 2006
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Exclamation BUG FOUND: in Iframe SSI script II when refreshing page

    Script: Iframe SSI script II
    http://www.dynamicdrive.com/dynamici...iframessi2.htm
    ---------------------------------------------------------------------

    Hi all, I am new to these forums, so allow me to introduce myself...
    I'm aleks, 3d artist, web designer until i get that dream job...

    I've discovered a bug in Iframe SSI script II when refreshing page!
    I love this script... except...
    sometimes when the page is refreshed, it doesn't work properly.
    the iframe loses its assigned properties, gets a scrollbar, and doesn't cause the main scrollbar to resize itself.

    check out my page and see for yourself.. refresh a couple of times and you will see

    http://www.beautification.ca/content

    help with this nasty bug would be much appreciated as its yet another stumbling block in what is a totally cursed website.

    thanks guys

    -aleks aka karmakat
    Last edited by karmakat; 03-24-2006 at 08:24 AM.

  2. #2
    Join Date
    Mar 2006
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Angry BUG NOT FIXED!!!!!! Iframe SSI Script II - breaks on refresh

    Script: Iframe SSI script II
    http://www.dynamicdrive.com/dynamici...iframessi2.htm
    ---------------------------------------------------------------------
    I thought i had fixed this but I was wrong
    It seemed to help but i am still having the problem....

    What I tried:

    In the last line before the script ends there is the line:
    Code:
    window.onload=resizeCaller
    add this below:

    Code:
    window.onUnload=resizeCaller

    Aleks aka KarmaKat
    http://www.karmakat.ca
    Last edited by karmakat; 03-24-2006 at 10:28 AM.

  3. #3
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    Does this happen on the demo page? If not, it probably has something to do with your markup.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

  4. #4
    Join Date
    Mar 2006
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Question IFRAME SSI refresh breaks script

    yes, I have been able to 'recreate' the error in both firefox and IE
    on the demo page.

    refresh a bunch of times until you notice the first example iframe just doesn't appear. I believe this is a symptom of the same bug i encountered.

    On my site, it may help to notice that this error happens most often if you go to section using the flash menu, and then refresh. ie.. if you load new content into the iframe and then refresh.


    If anyone can tell whats happening by looking at my code, please do let me know as this is a fatal flaw in my website:

    index.html
    ___________________________
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script type="text/javascript">
    
    /***********************************************
    * IFrame SSI script II- &#169; Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
    * Visit DynamicDrive.com for hundreds of original DHTML scripts
    * This notice must stay intact for legal use
    ***********************************************/
    
    //Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
    //Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
    var iframeids=["myframe"]
    
    //Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
    var iframehide="no"
    
    var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
    var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers
    
    function resizeCaller() {
    var dyniframe=new Array()
    for (i=0; i<iframeids.length; i++){
    if (document.getElementById)
    resizeIframe(iframeids[i])
    //reveal iframe for lower end browsers? (see var above):
    if ((document.all || document.getElementById) && iframehide=="no"){
    var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
    tempobj.style.display="block"
    }
    }
    }
    
    function resizeIframe(frameid){
    var currentfr=document.getElementById(frameid)
    if (currentfr && !window.opera){
    currentfr.style.display="block"
    if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
    currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
    else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
    currentfr.height = currentfr.Document.body.scrollHeight;
    if (currentfr.addEventListener)
    currentfr.addEventListener("load", readjustIframe, false)
    else if (currentfr.attachEvent){
    currentfr.detachEvent("onload", readjustIframe) // Bug fix line
    currentfr.attachEvent("onload", readjustIframe)
    }
    }
    }
    
    function readjustIframe(loadevt) {
    var crossevt=(window.event)? event : loadevt
    var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
    if (iframeroot)
    resizeIframe(iframeroot.id);
    }
    
    function loadintoIframe(iframeid, url){
    if (document.getElementById)
    document.getElementById(iframeid).src=url
    }
    
    if (window.addEventListener)
    window.addEventListener("load", resizeCaller, false)
    else if (window.attachEvent)
    window.attachEvent("onload", resizeCaller)
    else
    window.onload=resizeCaller
    window.onUnload=resizeCaller
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link href="style2.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div class="wrapperbox">
      <div class="centeredbox">
         <p align="center">
           <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="730" height="569">
             <param name="movie" value="home.swf" />
    
             <param name="quality" value="high" />
             <embed src="home.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="730" height="569"></embed>
           </object>
         </p>
         <div class="centeredbox2" id="framediv">
           <div align="center">
        <script language="javascript">
    // writes in the iframe
    var contPage = (location.search.substring(1))? location.search.substring(1) : 'index.php';
    
    var myDomain = "beautification.ca";
    // now check to see that myDomain is part of the content page string
    var contValid = contPage.search(myDomain);
    
    if (contValid == -1)
    	contPage = "index.php";
    else
    	contPage = unescape(contPage);
    	
    document.write('<center>');
    document.write('<iframe id="myframe" src="'+contPage+'" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; width:100%; display:none');
    document.write('</iframe>');
    document.write('</center>');
    </script>
           </div>
    
         </div>
         <p align="center">&nbsp; </p>
      </div>
    </div>
    
    </body>
    </html>
    Just so you know, the second javascript 'session' is for catching pages outside of the frameset and redirecting....

    Please help! thanks!

    -aleks

  5. #5
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    I refreshed the demo about 25 times, no problems.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

  6. #6
    Join Date
    Mar 2006
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    well i dunno... it happens on my site for you does it not?
    try loading something into the iframe and then refresh....

    What else could it be?

  7. #7
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    Quote Originally Posted by karmakat
    well i dunno... it happens on my site for you does it not?
    try loading something into the iframe and then refresh....

    What else could it be?
    Well, which is it? The point of the question was to help determine if the problem is relative to your computer or to your page or to the script itself. So, do you get the error on the demo page or not, it is fine with me if you do, I just didn't happen to experience it and got tired trying. I did see a problem on your page. Here is the error reported:

    from FF1.5.0 javascript console:

    Error: [Exception... "'Permission denied to get property HTMLDocument.body' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "<unknown>" data: no]
    This means the script thinks that the iframe content page is not from the same domain as the top page. If it is not, there is nothing you can do. If it is on the same domain, you need to find a way to convince the script of that fact. There may be a setting somewhere in your site's setup that reports a different DNS for the site than the top page is using. This is the reported address of one of your iframe pages:

    Code:
    http://karmakat.ca/beautification/content/index.php?option=com_content&task=view&id=25&Itemid=38
    clearly a different DNS than the top page's:

    Code:
    http://www.beautification.ca/content/
    In fact, if I link to this as the top page:

    http://karmakat.ca/beautification/content/index.html

    everything works fine.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •