• Resolved thehammer610

    (@thehammer610)


    I have been using the plugin ‘Head, Footer and Post Injections’ to insert header info into every page.

    Google wanted me to update some info for their Analytics and when I did, I got a Internal Server Error.

    It turns out to have nothing to do with Google, but a javascript that is in each page. There is a map on the side of each page that has hover and click buttons. When I remove that javascript, the Internal Server Error goes away. But now my map is static and there is not an indication that clicking on a town will do anything.

    The full error message says:

    ‘The server encoutered an internal error or misconfiguration and was unable to complete your request.’

    Using PHP 7.4 FastCGI. It is shared hosting.

    Below is the Javascript that I have been using for years:

    <!-- Javascript for map -->
      
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function () {
      $('#nav > li > a').hover(function(){
        if ($(this).attr('class') != 'active'){
          $('#nav li ul').slideUp();
          $(this).next().slideToggle();
          $('#nav li a').removeClass('active');
          $(this).addClass('active');
        }
      });
    });
    function MM_swapImgRestore() { //v3.0
      var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    
    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    </script>

    The page I need help with: [log in to see the link]

Viewing 8 replies - 1 through 8 (of 8 total)
  • JavaScript does not cause server-side errors because it runs in the visitor’s browser. So the cause must be something else.

    How do you insert this JavaScript code into your page? Do you use a plugin for this – which one? Or do you edit a template file?

    Also a look into the error log of your hosting would be interesting. There you should be able to see the exact cause of the error. Alternatively, you could also activate the debug mode in WordPress as described here: https://www.ads-software.com/support/article/debugging-in-wordpress/

    Thread Starter thehammer610

    (@thehammer610)

    Thank you for your response.

    I use the plugin ‘Head, Footer and Post Injections’.
    https://www.satollo.net/plugins/header-footer

    I believe I also tried another plugin with the same result, but I am not sure which one it was.

    I will look into the error log post what I see. And read through the debugging link you provided.

    Thread Starter thehammer610

    (@thehammer610)

    I decided to go into the Theme and edit the header.php directly. I inserted the header into the Theme header.php and now the JavaScript is working properly and there are no errors.

    Not sure why I was getting the ‘Internal Service Error’ while using the plugin ‘Head, Footer and Post Injections’ for the exact same Javascript, but the map is now working properly on all my pages.

    Thank you for your help.

    Changing theme files is not recommended. These will be overwritten with the next update. If you do this, I would recommend a child theme: https://developer.www.ads-software.com/themes/advanced-topics/child-themes/

    If you have any questions about the plugin you are using, especially if you think it is not working properly, you should contact their support: https://www.ads-software.com/support/plugin/header-footer/

    Thread Starter thehammer610

    (@thehammer610)

    Thanks. I figured I would have to repeat the process with every update. So I kept the header info so I could just copy and paste.

    I will follow up with the plug-in developer though.

    Thread Starter thehammer610

    (@thehammer610)

    The plug-in support said:

    “If you have an error while saving, almost surely is a provider filter blocking the kind of content you’re saving. Ask them for such a filter, could be by mod_secure.”

    I contacted the web hosting tech support. They told me:

    “…..effectively your IP was being
    blocked by mod-security. I whitelisted the rules and ran a config on the
    Apache service to refresh the server. The changes have been enforced.”

    Not sure why my IP was being blocked, and why this was the only issue I was having, but it all works now.

    Thanks for your help.

    Great that you found a solution. Feel free to set the topic to solved.

    Thread Starter thehammer610

    (@thehammer610)

    Problem solved.

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Javascript No Longer Works’ is closed to new replies.