Results 1 to 4 of 4

Thread: IE & Firefox Issues

  1. #1
    Join Date
    Dec 2010
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default IE & Firefox Issues

    Script works right in Chrome but not IE/Firefox. Error is contentdivs[...].style is null or not an object. Line 131 Char 2 Code 0 slider.js

    //** Featured Content Slider script- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com.

    var featuredcontentslider={

    //3 variables below you can customize if desired:
    ajaxloadingmsg: '<div style="margin: 20px 0 0 20px"><img src="loading.gif" /> Fetching slider Contents. Please wait...</div>',
    bustajaxcache: true, //bust caching of external ajax page after 1st request?
    enablepersist: false, //persist to last content viewed when returning to page?

    settingcaches: {}, //object to cache "setting" object of each script instance

    jumpTo:function(fcsid, pagenumber){ //public function to go to a slide manually.
    this.turnpage(this.settingcaches[fcsid], pagenumber)
    },

    ajaxconnect:function(setting){
    var page_request = false
    if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
    try {
    page_request = new ActiveXObject("Msxml2.XMLHTTP")
    }
    catch (e){
    try{
    page_request = new ActiveXObject("Microsoft.XMLHTTP")
    }
    catch (e){}
    }
    }
    else if (window.XMLHttpRequest) // if Mozilla, Safari etc
    page_request = new XMLHttpRequest()
    else
    return false
    var pageurl=setting.contentsource[1]
    page_request.onreadystatechange=function(){
    featuredcontentslider.ajaxpopulate(page_request, setting)
    }
    document.getElementById(setting.id).innerHTML=this.ajaxloadingmsg
    var bustcache=(!this.bustajaxcache)? "" : (pageurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
    page_request.open('GET', pageurl+bustcache, true)
    page_request.send(null)
    },

    ajaxpopulate:function(page_request, setting){
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
    document.getElementById(setting.id).innerHTML=page_request.responseText
    this.buildpaginate(setting)
    }
    },

    buildcontentdivs:function(setting){
    var alldivs=document.getElementById(setting.id).getElementsByTagName("div")
    for (var i=0; i<alldivs.length; i++){
    if (this.css(alldivs[i], "contentdiv", "check")){ //check for DIVs with class "contentdiv"
    setting.contentdivs.push(alldivs[i])
    alldivs[i].style.display="none" //collapse all content DIVs to begin with
    }
    }
    },

    buildpaginate:function(setting){
    this.buildcontentdivs(setting)
    var sliderdiv=document.getElementById(setting.id)
    var pdiv=document.getElementById("paginate-"+setting.id)
    var phtml=""
    var toc=setting.toc
    var nextprev=setting.nextprev
    if (typeof toc=="string" && toc!="markup" || typeof toc=="object"){
    for (var i=1; i<=setting.contentdivs.length; i++){
    phtml+='<a href="#'+i+'" class="toc">'+(typeof toc=="string"? toc.replace(/#increment/, i) : toc[i-1])+'</a> '
    }
    phtml=(nextprev[0]!=''? '<a href="#prev" class="prev">'+nextprev[0]+'</a> ' : '') + phtml + (nextprev[1]!=''? '<a href="#next" class="next">'+nextprev[1]+'</a>' : '')
    pdiv.innerHTML=phtml
    }
    var pdivlinks=pdiv.getElementsByTagName("a")
    var toclinkscount=0 //var to keep track of actual # of toc links
    for (var i=0; i<pdivlinks.length; i++){
    if (this.css(pdivlinks[i], "toc", "check")){
    if (toclinkscount>setting.contentdivs.length-1){ //if this toc link is out of range (user defined more toc links then there are contents)
    pdivlinks[i].style.display="none" //hide this toc link
    continue
    }
    pdivlinks[i].setAttribute("rel", ++toclinkscount) //store page number inside toc link
    pdivlinks[i][setting.revealtype]=function(){
    featuredcontentslider.turnpage(setting, this.getAttribute("rel"))
    return false
    }
    setting.toclinks.push(pdivlinks[i])
    }
    else if (this.css(pdivlinks[i], "prev", "check") || this.css(pdivlinks[i], "next", "check")){ //check for links with class "prev" or "next"
    pdivlinks[i].onclick=function(){
    featuredcontentslider.turnpage(setting, this.className)
    return false
    }
    }
    }
    this.turnpage(setting, setting.currentpage, true)
    if (setting.autorotate[0]){ //if auto rotate enabled
    pdiv[setting.revealtype]=function(){
    featuredcontentslider.cleartimer(setting, window["fcsautorun"+setting.id])
    }
    sliderdiv["onclick"]=function(){ //stop content slider when slides themselves are clicked on
    featuredcontentslider.cleartimer(setting, window["fcsautorun"+setting.id])
    }
    setting.autorotate[1]=setting.autorotate[1]+(1/setting.enablefade[1]*50) //add time to run fade animation (roughly) to delay between rotation
    this.autorotate(setting)
    }
    },

    urlparamselect:function(fcsid){
    var result=window.location.search.match(new RegExp(fcsid+"=(\\d+)", "i")) //check for "?featuredcontentsliderid=2" in URL
    return (result==null)? null : parseInt(RegExp.$1) //returns null or index, where index (int) is the selected tab's index
    },

    turnpage:function(setting, thepage, autocall){
    var currentpage=setting.currentpage //current page # before change
    var totalpages=setting.contentdivs.length
    var turntopage=(/prev/i.test(thepage))? currentpage-1 : (/next/i.test(thepage))? currentpage+1 : parseInt(thepage)
    turntopage=(turntopage<1)? totalpages : (turntopage>totalpages)? 1 : turntopage //test for out of bound and adjust
    if (turntopage==setting.currentpage && typeof autocall=="undefined") //if a pagination link is clicked on repeatedly
    return
    setting.currentpage=turntopage
    setting.contentdivs[turntopage-1].style.zIndex=++setting.topzindex
    this.cleartimer(setting, window["fcsfade"+setting.id])
    setting.cacheprevpage=setting.prevpage
    if (setting.enablefade[0]==true){
    setting.curopacity=0
    this.fadeup(setting)
    }
    if (setting.enablefade[0]==false){ //if fade is disabled, fire onChange event immediately (verus after fade is complete)
    setting.contentdivs[setting.prevpage-1].style.display="none" //collapse last content div shown (it was set to "block")
    setting.onChange(setting.prevpage, setting.currentpage)
    }
    setting.contentdivs[turntopage-1].style.visibility="visible"
    setting.contentdivs[turntopage-1].style.display="block"
    if (setting.prevpage<=setting.toclinks.length) //make sure pagination link exists (may not if manually defined via "markup", and user omitted)
    this.css(setting.toclinks[setting.prevpage-1], "selected", "remove")
    if (turntopage<=setting.toclinks.length) //make sure pagination link exists (may not if manually defined via "markup", and user omitted)
    this.css(setting.toclinks[turntopage-1], "selected", "add")
    setting.prevpage=turntopage
    if (this.enablepersist)
    this.setCookie("fcspersist"+setting.id, turntopage)
    },

    setopacity:function(setting, value){ //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)
    var targetobject=setting.contentdivs[setting.currentpage-1]
    if (targetobject.filters && targetobject.filters[0]){ //IE syntax
    if (typeof targetobject.filters[0].opacity=="number") //IE6
    targetobject.filters[0].opacity=value*100
    else //IE 5.5
    targetobject.style.filter="alpha(opacity="+value*100+")"
    }
    else if (typeof targetobject.style.MozOpacity!="undefined") //Old Mozilla syntax
    targetobject.style.MozOpacity=value
    else if (typeof targetobject.style.opacity!="undefined") //Standard opacity syntax
    targetobject.style.opacity=value
    setting.curopacity=value
    },


    fadeup:function(setting){
    if (setting.curopacity<1){
    this.setopacity(setting, setting.curopacity+setting.enablefade[1])
    window["fcsfade"+setting.id]=setTimeout(function(){featuredcontentslider.fadeup(setting)}, 50)
    }
    else{ //when fade is complete
    if (setting.cacheprevpage!=setting.currentpage) //if previous content isn't the same as the current shown div (happens the first time the page loads/ script is run)
    setting.contentdivs[setting.cacheprevpage-1].style.display="none" //collapse last content div shown (it was set to "block")
    setting.onChange(setting.cacheprevpage, setting.currentpage)
    }
    },

    cleartimer:function(setting, timervar){
    if (typeof timervar!="undefined"){
    clearTimeout(timervar)
    clearInterval(timervar)
    if (setting.cacheprevpage!=setting.currentpage){ //if previous content isn't the same as the current shown div
    setting.contentdivs[setting.cacheprevpage-1].style.display="none"
    }
    }
    },

    css:function(el, targetclass, action){
    var needle=new RegExp("(^|\\s+)"+targetclass+"($|\\s+)", "ig")
    if (action=="check")
    return needle.test(el.className)
    else if (action=="remove")
    el.className=el.className.replace(needle, "")
    else if (action=="add")
    el.className+=" "+targetclass
    },

    autorotate:function(setting){
    window["fcsautorun"+setting.id]=setInterval(function(){featuredcontentslider.turnpage(setting, "next")}, setting.autorotate[1])
    },

    getCookie:function(Name){
    var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
    if (document.cookie.match(re)) //if cookie found
    return document.cookie.match(re)[0].split("=")[1] //return its value
    return null
    },

    setCookie:function(name, value){
    document.cookie = name+"="+value

    },


    init:function(setting){
    var persistedpage=this.getCookie("fcspersist"+setting.id) || 1
    var urlselectedpage=this.urlparamselect(setting.id) //returns null or index from: mypage.htm?featuredcontentsliderid=index
    this.settingcaches[setting.id]=setting //cache "setting" object
    setting.contentdivs=[]
    setting.toclinks=[]
    setting.topzindex=0
    setting.currentpage=urlselectedpage || ((this.enablepersist)? persistedpage : 1)
    setting.prevpage=setting.currentpage
    setting.revealtype="on"+(setting.revealtype || "click")
    setting.curopacity=0
    setting.onChange=setting.onChange || function(){}
    if (setting.contentsource[0]=="inline")
    this.buildpaginate(setting)
    if (setting.contentsource[0]=="ajax")
    this.ajaxconnect(setting)
    }

    }

  2. #2
    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

    That's an old outdated version of the script. The most recent can be found here:

    http://www.dynamicdrive.com/dynamici...tentslider.htm

    However, from the error you are getting, that might not be the problem. Sounds like the HTML markup on the page is giving you the error by making the script point to an element that's not there. If so, Chrome must be error correcting for that somehow. The old script did work in Firefox and IE.

    But since I assume you no longer have the complete instructions for the old script, and I have no idea where you would find them, I'd suggest updating to the current version. Make sure to follow the step by step instructions on the demo page, especially as regards the example HTML markup.

    Alternatively, if you post a link to the page on your site that contains the problem code, I may be able to determine if my theory is correct. Either way, it would be the best way to determine if there is a way to fix it while still using the old script.

    If you want more help:

    Please post a link to a page on your site that contains the problematic code so we can check it out.
    Last edited by jscheuer1; 12-23-2010 at 08:48 PM. Reason: English usage
    - John
    ________________________

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

  3. #3
    Join Date
    Dec 2010
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Link to problem page

    Here is the link to my webpage that I am having problems.

    http://www.jeremymonroe.com/v2

    I purchased this WP theme from someone who included the script in the main page. I have no documentation and the designer offers no support. Anything would be great. I figured that contentdivs is being called but not defined anywhere but if that were the case, how would Chrome be able to find where its defined in the code versus IE/Firefox not being able to see it.

    Got me stumped. Thanks John.

    Edit--I have downloaded the files and the js coding looks exactly the same to me. I get the same exact error when I plug in the files and coding into my index.php file. Do you think it's possible that I will have to make a static index page with the coding and not use a WP page for the index? Or is there a way to make the index.php file pull in the right code and reference the js file and properly work?
    Last edited by jmonroe; 12-23-2010 at 08:43 PM. Reason: Add more info

  4. #4
    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

    Works fine here. I do see the error though in IE, Firefox, and Chrome! A non-fatal error in all. It's probably a non-fatal error in any browser. Most browsers don't report all errors unless you ask them to. IE does so by default for most errors fatal or non-fatal. Firefox requires (or used to, I always have it on now, so I don't know what the current default is) use of its console to detect errors. Chrome is the same (requires use of its console to detect errors).

    The error is possibly due to the HTML code not following what's expected, leading the script to look for a non-existent pdiv. This is often the case in situations like this. But I don't think so here. If you use any browser's 'view source', you will see that there is a:

    Code:
    <script type="text/javascript" src="http://jeremymonroe.com/v2/wp-content/themes/Monroe/contentslider.js"></script>
    and a:

    Code:
    <script type="text/javascript" src="http://www.jeremymonroe.com/v2/wp-content/themes/Monroe/contentslider.js"></script>
    as well as two:

    Code:
    <script type="text/javascript">
    
    featuredcontentslider.init({
    id: "slider1", //id of main slider DIV
    contentsource: ["inline", ""], //Valid values: ["inline", ""] or ["ajax", "path_to_file"]
    toc: "increment", //Valid values: "#increment", "markup", ["label1", "label2", etc]
    nextprev: ["", ""], //labels for "prev" and "next" links. Set to "" to hide.
    revealtype: "mouseover", //Behavior of pagination links to reveal the slides: "click" or "mouseover"
    enablefade: [true, 0.2], //[true/false, fadedegree]
    autorotate: [true, 3000], //[true/false, pausetime]
    onChange: function(previndex, curindex){ //event handler fired whenever script changes slide
    //previndex holds index of last slide viewed b4 current (1=1st slide, 2nd=2nd etc)
    //curindex holds index of currently shown slide (1=1st slide, 2=2nd etc)
    	}
    })
    
    </script>
    You have to either abandon WP for this page or take control of it so that it doesn't result in this duplication of effort.
    - 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
  •