project Websites / videos.bentasker.co.uk avatar

Websites / videos.bentasker.co.uk: c38ed833




VID-9 Write basic schema.org markup into pages when embedding

VID-9 Write basic schema.org markup into pages when embedding

Will only get used by search engines that execute the JS, but that was a given anyway (as the video won't be embedded if JS isn't active)

Commit c38ed833.

Authored 2019-04-02T17:23:28.000+01:00 by B Tasker in project Websites / videos.bentasker.co.uk

+71 lines -1 lines

Changes

diff --git a/resources/embed/embed.js b/resources/embed/embed.js
--- a/resources/embed/embed.js
+++ b/resources/embed/embed.js
# @@ -50,7 +50,7 @@ function embedBensPlayer(vidurl,vidtype){
# c.appendChild(e);
#
#
# - playerSettings = { 'vidtype': vidtype, 'vidurl': vidurl}
# + playerSettings = { 'vidtype': vidtype, 'vidurl': vidurl, 'vidid': vidid}
#
#
# // We then trigger the next steps in stages to make sure everything that needs to be loaded, is
# @@ -105,6 +105,10 @@ function writePlayer(vidid,playerSettings){
# s.innerHTML = ss;
#
# c.appendChild(s);
# +
# + // VID-9 check for metadata and write schema.org markup if it exists
# + dirname = playerSettings['vidurl'].match(/.*\//);
# + fetchPage(dirname + 'details.json',BenswriteSchemaOrg,function(e){},playerSettings);
# }
#
#
# @@ -134,3 +138,69 @@ function loadVJSHLS(vidid,playerSettings){
# }
#
#
# +function fetchPage(url,callback,errcallback,storage){
# + var xmlhttp;
# + if (window.XMLHttpRequest){
# + // code for IE7+, Firefox, Chrome, Opera, Safari
# + xmlhttp=new XMLHttpRequest();
# + }else{
# + // code for IE6, IE5 (why am I still supporting these? Die... Die.... Die....
# + xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
# + }
# +
# + xmlhttp.onreadystatechange=function(){
# + if (xmlhttp.readyState==4){
# + if(xmlhttp.status==200){
# + callback(xmlhttp.responseText,storage,url)
# + }else{
# + errcallback(xmlhttp.responseText)
# + }
# +
# +} }
# +
# + xmlhttp.open("GET",url,true);
# + xmlhttp.send();
# +}
# +
# +
# +function BenswriteSchemaOrg(text,storage,url){
# + var j = JSON.parse(text);
# +
# + var d = document.getElementById('BensplayerWrapper'+storage['vidid']);
# + d.setAttribute('itemscope','');
# + d.setAttribute('itemtype','https://schema.org/VideoObject');
# +
# + m = cE('meta');
# + var url = 'https://videos.bentasker.co.uk/Player.html?url=' + encodeURIComponent(url.replace('https://videos.bentasker.co.uk/',''));
# + m.setAttribute('itemprop','url');
# + m.setAttribute('content', url);
# + d.appendChild(m);
# +
# + if (j.hasOwnProperty('title')){
# + var m = cE('meta');
# + m.setAttribute('itemprop','name');
# + m.setAttribute('content',j['title']);
# + d.appendChild(m);
# + }
# +
# + if (j.hasOwnProperty('description')){
# + var m = cE('meta');
# + m.setAttribute('itemprop','description');
# + m.setAttribute('content',j['description'].replace(/'/g, ''));
# + d.appendChild(m);
# + }
# +
# + if (j.hasOwnProperty('keywords')){
# + var m = cE('meta');
# + m.setAttribute('itemprop','keywords');
# + m.setAttribute('content',j['keywords'].replace(/'/g, ''));
# + d.appendChild(m);
# + }
# +
# +
# + var m = cE('meta');
# + m.setAttribute('itemprop','playerType');
# + m.setAttribute('content','html5');
# + d.appendChild(m);
# +
# +}
# \ No newline at end of file
#