Královny rodily těžce, obklopeny spoustou lidí. Mnohé z nich porody nepřežily

18. 9. 2023

Sdílet

Bude to dědic? Nezklamu? Přežije dítě? A přežiju i já? Tyto otázky si možná pokládala nejedna manželka panovníka, od níž se očekávalo, že porodí zdravého a silného potomka mužského pohlaví.

Co se dělo v královských ložnicích v okamžiku, kdy vysoce postavené ženy přiváděly své děti na svět? Soukromí ve svých ložnicích si královny moc neužily. Bývaly obklopeny davy lidí. Navíc smrt byla všudypřítomná.

Ztratil milovanou ženu  

Jednou z královen, které zemřely při porodu, byla matka Jindřicha VIII., Alžběta z Yorku (1466–1503), která doplatila na porod dcery Kateřiny. Otěhotněla v době, kdy prožívala smutek ze ztráty syna Artura, Jindřichova bratra, po němž zůstala mladičká vdova Kateřina Aragonská, kterou si Jindřich později vzal za manželku. 

Krátce po absolvování cesty na lodi přes ledovou Temži na mši do Toweru začala nečekaně rodit a 2. února 1503 za pomoci své oblíbené porodní báby Alice Massy přivedla na svět holčičku, která zřejmě na počest truchlící snachy dostala jméno Kateřina. Děvčátko však bohužel zemřelo krátce po porodu.

Upili se k smrti, nebo předávkovali. I umělci před více než sto lety holdovali drogám Přečtěte si také:

Upili se k smrti, nebo předávkovali. I umělci před více než sto lety holdovali drogám

Netrvalo dlouho a došlo i na královnu. Trpěla horečkami a slabostí, zřejmě v důsledku silné poporodní infekce, a přesně v den svých 37. narozenin, sedm dní po porodu, zemřela. Tohle byl ale poměrně běžný scénář porodů, který se nevyhýbal ani královským ložnicím. Smrt bere vše, a to bez ohledu na urozenost.

Alžbětin syn Jindřich VIII. (1491–1547), který se nechvalně proslavil skandálním manželským životem se svými šesti ženami, jež po jeho boku nedopadly zrovna nejlépe, zažil tuto samou situaci jako jeho otec. Ztratil milovanou ženu při porodu. Třetí manželka Jindřicha VIII. Jane Seymour (1508–1537) zemřela na horečku omladnic po dlouhém a těžkém porodu jediného následníka trůnu – Eduarda.

Dva dny a tři noci bolesti

U porodu byl na příkaz krále lékař William Butts (1486–1545), kterému Jindřich VIII. věřil. Samotný porod však trval dva dny a tři noci. Po porodu nastala velká sláva a královně prý bylo dobře. Za pár dnů se ale její zdravotní stav velice zhoršil, trpěla horečkou a začala silně krvácet. Její dvorní dámy a služebné, kterých kolem sebe měla vždycky dost, ji balily do kožešin a nosily z kuchyně posilující vývary.

Královna však přesto dvanáct dní od porodu syna v noci zemřela. Nebylo jí ani třicet let. Pozdější dohady ukazovaly, že jí pravděpodobně nevyšla placenta. Tehdejší doba ale její komplikace při porodu a následnou smrt přičítala tomu, že během těhotenství velice ztloustla a měla velkou chuť na křepelky, zkrátka se prý nezřízeně cpala. Podle dalších dohadů údajně museli Jane Seymour udělat císařský řez a král musel volit mezi životem syna a své královny. Tato teorie se však ukázala jako jen velmi málo pravděpodobná. Císařské řezy se totiž běžně dělaly až mnohem později, i když jejich historie je vcelku zajímavá.

Při prvních císařských řezech se počítalo s tím, že žena nepřežije Přečtěte si také:

Při prvních císařských řezech se počítalo s tím, že žena nepřežije

První císařský řez v Čechách

Jednou z prvních královen, která porodila své dítě císařským řezem, byla Beatrice Bourbonská (1318–1383), druhá manželka Jana Lucemburského (1296–1346). Jejich syn Václav, nevlastní bratr pozdějšího panovníka Karla IV., přišel na svět císařským řezem a matka i dítě ho přežili, což bylo na tehdejší dobu něco zcela nevídaného a rovnajícího se zázraku. Proto se část historiků stále dohaduje, zda skutečně chápeme dobové prameny správně, anebo zda nešlo o záměrné oklamání čtenářů dávných kronik.

Královna údajně během náročného a vysilujícího porodu upadla do mdlob a bezvědomí, takže se ani nevědělo, zda je živá, či mrtvá. Bezvědomí jí také ušetřilo velké bolesti při chirurgickém vytažení dítěte z jejího těla v době, kdy nebyla známá žádná anestezie. Odborné potvrzení toho, že první sekce byla provedena pravděpodobně ve 14. století v Čechách, dokládá lékařská studie porodníka Antonína Pařízka a kolektivu historiků z roku 2016, publikovaná v časopise Česká gynekologie.

Galerie: Historie porodnictví

Kolem postele dav a žádné soukromí

Mdloby při velmi komplikovaném porodu přepadly také královnu Marii Antoinettu (1755–1793). Když zcela vysílená přiváděla na svět dceru Marii Terezii Šarlotu, která jako jediná z jejích dětí přežila Velkou francouzskou revoluci, byla obklopena tolika zvědavými lidmi, že úplně vydýchali vzduch v místnosti. Přítrž tomu učinil král Ludvík XVI., který prý rázně vkročil do místnosti, okno rovnou rozbil a dav vykázal do patřičné vzdálenosti. Pak už královna zdárně porodila, ale takové bezproblémové porody jako její matka Marie Terezie (1717–1780), která přivedla na svět šestnáct dětí, neměla.

Když první manželka Jindřicha VIII. Kateřina Aragonská (1485–1536) čekala své první dítě, přípravy na porod byly honosné. Bylo objednáno porodnické křeslo i měděná miska na zachycení krve a placenty. Poslali i pro stříbrnou křtitelnici z katedrály v Canterbury. Bohužel ale smrtí sedmiměsíčního plodu, holčičky, došlo k předzvěsti smutného konce nejen prvního těhotenství, ale i mnoha dalších, včetně královny samotné, kterou nakonec po boku krále nahradila Anna Boleynová.

Historie porodnictví: Málokteré dítě přežilo Přečtěte si také:

Historie porodnictví: Málokteré dítě přežilo

Trojnásobná tragédie  

Mnohem hůř však dopadl porod britské princezny Šarloty Augusty Hannoverské (1796–1817), která byla dcerou Jiřího IV. a mohla se stát i královnou Anglie. Princezna byla manželkou Leopolda Sasko-Koburského (1790–1865), pozdějšího belgického krále. 

Když otěhotněla, dostala se pod drobnohled lékaře Richarda Crofta (1762–1818), který dobře živené princezně nařídil drastickou dietu. Jakmile zeslábla, její stav se pokoušel napravit pouštěním žilou, což samozřejmě vedlo k dalšímu oslabení. Slabá a vyčerpaná žena rodila déle než dva dny a v průběhu celého porodu nedostala ani najíst, ani se jí nikdo nesnažil, paradoxně již v medicínsky vyspělejším 19. století, ulevit.

Dítě se po více než dvou dnech narodilo mrtvé a hned druhý den jej následovala zcela vyčerpaná a silně krvácející žena. I když údajně princeznu po porodu nalévali portským vínem, pomoct jí už nikdo nedokázal. 

Každý rok těhotenství a porod. Kdo v počtu dětí předčil Marii Terezii? Přečtěte si také:

Každý rok těhotenství a porod. Kdo v počtu dětí předčil Marii Terezii?

Smrt princezny byla zbytečná, tragická a způsobila krizi v nástupnictví. Protože všichni vinili lékaře Richarda Crofta, neunesl to a spáchal sebevraždu – pár měsíců po tragédii se zastřelil. Do historie lidstva se tak zapsala tato trojnásobná porodní tragédie. Dítě šlo na svět koncem pánevním, kleště se používat nesměly, císařský řez by znamenal jistou smrt princezny. Později se ukázalo, že princezna zemřela pravděpodobně na plicní embolii.

Také španělská královna Marie Isabela Portugalská zemřela v jedenadvaceti při porodu druhého dítěte, její první dcera se dožila jen čtyř měsíců. Milovnice a sběratelka umění se stala španělskou královnou coby druhá manželka Ferdinanda VII. Španělského, vztah byl kvůli jeho nevěrám velice náročný. 

Druhé těhotenství bylo celou dobu komplikované a během porodu lékaři zjistili, že dítě je mrtvé. Marie Isabela ztratila vědomí, lékaři si rovněž mysleli, že zemřela a rozhodli se dítě z jejího těla vyjmout, královně se zřejmě stal osudným až tento zákrok. 

Naopak snadný porod měla jen o pár desítek let později královna Viktorie (1819–1901), která se při svém sedmém porodu opájela rajským plynem lékaře Johna Snowa (1813–1858). Za dobré služby pak lékař získal tituly sir a baronet.

Zdroje: stoplusjednicka.cz; zpravy.tiscali.cz; en.wikipedia.org;

Rychlík, Martin. Dějiny lidí: Praha Academia 2022

Bormanová, Tracy. Tudorovci. Praha: Ikar 2017.

Autor článku

Externí redaktorka a copywriterka píšící pro webové i tištěné magazíny. Zaměřuje se na oblast zdraví, historie medicíny, psychologie, filozofie, etikoterapie a alternativní medicíny.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »