Name is required.
Email address is required.
Invalid email address
Answer is required.
Exceeding max length of 5KB

Calling JS API functions when jwplayer is defined


Hello,

I have a custom script that loads JWPlayer JS API functions to enhance our users video experience.

The issue I am having is that this script loads on every page of our website (in wordpress) and on those pages where JWPlayer is not embedded it keeps throwing errors:

Uncaught TypeError: jwplayer(...).on is not a function

The script I am talking about is here: https://www.visualsp.com/wp-content/themes/VisualSP/js/player.js

IS there a way to defer executing of the code in this script until we know JW Player is required and loaded on the page?

1 Community Answers

George

Best Answer  JW Player Support Agent  

Hello Jeremy,

You’d want to use a standard JavaScript try catch block.

<script> try { var a = jwplayer(); } catch (e) { console.log(e instanceof ReferenceError); // true console.log(e.message); // "undefinedVariable is not defined" console.log(e.name); // "ReferenceError" console.log(e.fileName); // "Scratchpad/1" console.log(e.lineNumber); // 2 console.log(e.columnNumber); // 6 console.log(e.stack); // "@Scratchpad/2:2:7\n" } </script>

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError
http://qa.jwplayer.com.s3.amazonaws.com/~george/empty.html

George

Best Answer  JW Player Support Agent  
0 rated :

Hello Jeremy,

You’d want to use a standard JavaScript try catch block.

<script> try { var a = jwplayer(); } catch (e) { console.log(e instanceof ReferenceError); // true console.log(e.message); // "undefinedVariable is not defined" console.log(e.name); // "ReferenceError" console.log(e.fileName); // "Scratchpad/1" console.log(e.lineNumber); // 2 console.log(e.columnNumber); // 6 console.log(e.stack); // "@Scratchpad/2:2:7\n" } </script>

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError
http://qa.jwplayer.com.s3.amazonaws.com/~george/empty.html

This question has received the maximum number of answers.