SPQRInc
SPQRInc

Reputation: 188

JS needs to be placed before </body>, but I can only add it to the head

I am trying to get this working in an extension for a little existing CMS.

The problem is: This script needs to be placed before </body>, but the CMS only allows me to place it to the head of the page.

Now I tried something like this:

$(function() {$('p').selectionSharer();}); - this works for the Twitter and Mail-function, but it does not recognize the Facebook App ID in the page.

The Facebook-ID is in the heading swell:

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="canonical" href="http://127.0.0.1:8080/index.php/">
    <meta property="twitter:card" content="summary_large_image">
    <meta name="fb:app_id" content="123456789">
    <meta property="og:site_name" content="Pagekit">
    <meta property="og:title" content="Home">
    <meta property="og:description" content="Globale Meta">
    <meta property="og:url" content="http://127.0.0.1:8080/index.php/">     
    <script>
    $(function() {$('p').selectionSharer();});
    </script>
    <script src="/selectionshare/app/assets/selection-sharer/dist/selection-sharer.js?v=7e08"></script>

Any idea how I could get this working?

Upvotes: 0

Views: 49

Answers (2)

Will Reese
Will Reese

Reputation: 2841

This what jQuery.ready is for.

$(document).ready(function() {/* my code */ });

This functions similarly to adding code to the end of the body.

<script>
  $(document).ready(function() {
    $('p').selectionSharer();}
  });
</script>

Upvotes: 3

yang
yang

Reputation: 1

Of course you can try

window.onload = function(){/* my code */};

Upvotes: 0

Related Questions