Page 2 of 2 FirstFirst 12
Results 11 to 17 of 17

Thread: Problems in IE8 with IFrame SSI script II

  1. #11
    Join Date
    Sep 2009
    Location
    Bangalore
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    thanks but it did not work for me. Now I am trying to create iframes dynamically and not sure how to call this script thr..please have a look and let me know if you have any idea..the code is in c# and given below..

    protected void Page_Load(object sender, EventArgs e)
    {


    HtmlGenericControl frame1 = new HtmlGenericControl("iFrame");
    frame1.TagName = "iframe";
    frame1.Attributes.Add("runat", "server");
    frame1.Attributes.Add("style", "overflow:visible; width:100%; height:100%;");
    frame1.Attributes.Add("src", "http://www.google.com");
    PlaceHolder1.Controls.Add(frame1);
    }

    How can I use this script here? Please let me know if you have any idea as its very urgent..

    Thanks,

  2. #12
    Join Date
    Sep 2009
    Location
    Bangalore
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    thanks but it did not work for me. Now I am trying to create iframes dynamically and not sure how to call this script thr..please have a look and let me know if you have any idea..the code is in c# and given below..

    protected void Page_Load(object sender, EventArgs e)
    {


    HtmlGenericControl frame1 = new HtmlGenericControl("iFrame");
    frame1.TagName = "iframe";
    frame1.Attributes.Add("runat", "server");
    frame1.Attributes.Add("style", "overflow:visible; width:100%; height:100%;");
    frame1.Attributes.Add("src", "http://www.google.com");
    PlaceHolder1.Controls.Add(frame1);
    }

    How can I use this script here? Please let me know if you have any idea as its very urgent..

    Thanks,

  3. #13
    Join Date
    Apr 2010
    Posts
    2
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default SSI does not work with firefox

    Hi,

    I use exactly this version of the script.

    HTML Code:
    <script type="text/javascript">
    
    /***********************************************
    * IFrame SSI script II- © 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) {
    currentfr.style.display = "block"; 
    if (currentfr.Document && currentfr.Document.body.scrollHeight) {	                                                               //ie5+ syntax
    currentfr.height = currentfr.Document.body.scrollHeight;
    } else if (currentfr.contentDocument && currentfr.contentDocument.body.scrollHeight) {			//ns6+ / opera syntax
    currentfr.height = currentfr.contentDocument.body.scrollHeight + FFextraHeight;
    } else if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) {			//standards compliant syntax - probably nothing
    																				
    // will drop through to this
    currentfr.height = currentfr.contentDocument.body.offsetHeight + FFextraHeight;
    }
    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
    
    </script>
    It works in all browsers instead of Firefox is making a scrollbar. Sometimes it works properly in Firefox but mostly you have to press F5 to eliminate scrollbar.

    Most of users will not press F5 and leave page soon.

    Does anybody know a solution to fix the firefox scrollbar problem?

    HierŽis url

  4. #14
    Join Date
    Apr 2010
    Posts
    2
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default SSI does not work with firefox

    Has anybody an idea?
    Is there a new version of script?

    url again Strom

    Thanks
    Best regards

  5. #15
    Join Date
    Apr 2010
    Posts
    1
    Thanks
    0
    Thanked 1 Time in 1 Post

    Default

    I found one peice of code that fixed the scrolling in FF, and fixed the IE8 bug and merged them together. It might overlap but it works so i dont care.

    *****************************************************
    Code:
    <script type="text/javascript">
    
    /***********************************************
    * IFrame SSI script II- © 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.contentDocument && currentfr.contentDocument.documentElement.offsetHeight) //ns6 syntax
    currentfr.height = currentfr.contentDocument.documentElement.offsetHeight+FFextraHeight;
    else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
    currentfr.height = currentfr.Document.body.scrollHeight;
    else if (currentfr.Document && currentfr.Document.documentElement.scrollHeight) //ie5+ syntax
    currentfr.height = currentfr.Document.documentElement.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
    
    </script>
    ***************************************************

    Hopefully that works for you as well. Tested for only IE and FF.
    Last edited by Snookerman; 04-10-2010 at 05:09 AM. Reason: please use code tags

  6. The Following User Says Thank You to Unhealthydragon For This Useful Post:

    Sparzone (05-03-2010)

  7. #16
    Join Date
    Aug 2009
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    A new problem for IE9 has cropped up. Here is the modified code (changed for FF4) that I am using:

    Code:
    <script language="javascript" type="text/javascript">
    <!--
    /***********************************************
    * IFrame SSI script II- © 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=["quickie"]
    			
    //Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
    var iframehide="yes"
    	
    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 / RS Jan 2011
    //var FFextraHeight=parseFloat(getFFVersion)>=0.1? 20 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers / RS May 2011 20px keeps FF4 from scrolling.
    			
    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"
    }
    }
    }
    
    /*************************************************************
    * Fix for IE8 / Opera display errors (replaces function above
    * http://www.dynamicdrive.com/forums/showthread.php?t=44718
    * Thanks to geoffbeaumont He says:
    * The problem is that the script checks for currentfr.contentDocument.body.offsetHeight and uses that if present, falling back on currentfr.Document.body.scrollHeight for IE.
    * IE8 adds support for contentDocument, but misreports currentfr.contentDocument.body.offsetHeight as the height of the iframe window not the document body.
    *
    * Opera (v9) also misreports the body.offsetHeight in the same way, and doesn't support frame.Document (which is IE only).
    * However, it does report the non-standard scrollHeight property correctly, and can access it as currentfr.contentDocument.body.scrollHeight (as can every other browser I've tried).
    *
    * He says: "To fix this issue, replace this function in the script:"
    //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)
    //}
    //}
    //}
    * with:
    **************************************************************/
    
    function resizeIframe(frameid){
    var currentfr=document.getElementById(frameid)
    if (currentfr){
    currentfr.style.display = "block"; 
    if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
    						currentfr.height = currentfr.Document.body.scrollHeight;
    //
    //******** The following 2 lines are not needed for Standards complient browsers / RS Jan 2011
    //
    //	else if (currentfr.contentDocument && currentfr.contentDocument.body.scrollHeight) //ns6+ / opera syntax
    //	  currentfr.height = currentfr.contentDocument.body.scrollHeight + FFextraHeight;
    //
    //******** END - The following 2 lines are not needed for Standards complient browsers / RS Jan 2011
    //
    else if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //standards compliant syntax - probably nothing will drop through to this
    currentfr.height = currentfr.contentDocument.body.offsetHeight + FFextraHeight;
    if (currentfr.addEventListener)
    currentfr.addEventListener("load", readjustIframe, false);
    else if (currentfr.attachEvent) {
    currentfr.detachEvent("onload", readjustIframe);	// Bug fix line
    currentfr.attachEvent("onload", readjustIframe);
    }
    }
    }
    				
    /***********************************************
    * End of fix for IE8 / Opera
    ***********************************************/
    			
    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
    }
    //-->	
    </script>
    When the iframe is loaded in IE there is about 60 PX vertical space below the item in the frame. In FF4 all is ok.

    How do I detect IE9 to eliminate the dead space below the item?

    ADDENDUM: IE also adds space below the resized frame whenever it is reloaded. Apparently it is using the FF "FFextraHeight" and adding it when it could very well just skip it.
    Last edited by rick_str; 05-21-2011 at 12:06 AM. Reason: Added information.

  8. #17
    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

    Code:
    /*@cc_on @*/
    /*@if(@_jscript_version >= 5)
    if(/MSIE (\d+)/.exec(navigator.userAgent)[1] > 8){
    //do something here that's only for IE 9 and greater
    }
    @end @*/
    - John
    ________________________

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

Tags for this Thread

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
  •