1<!DOCTYPE html> 2<html lang="de" dir="ltr"> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <link rel="preconnect" href="https://d.delivery.consentmanager.net"> 6 <link rel="preconnect" href="https://cdn.consentmanager.net"> 7 <link rel="dns-prefetch" href="https://d.delivery.consentmanager.net"> 8 <link rel="dns-prefetch" href="https://cdn.consentmanager.net"> 9
9<script>window.gdprAppliesGlobally = true; 10 if (!("cmp_id" in window) || window.cmp_id < 1) { 11 window.cmp_id = 0 12 } 13 if (!("cmp_cdid" in window)) { 14 window.cmp_cdid = "3c83d72c513f6" 15 } 16 if (!("cmp_params" in window)) { 17 window.cmp_params = "" 18 } 19 if (!("cmp_host" in window)) { 20 window.cmp_host = "delivery.consentmanager.net" 21 } 22 if (!("cmp_cdn" in window)) { 23 window.cmp_cdn = "cdn.consentmanager.net" 24 } 25 if (!("cmp_proto" in window)) { 26 window.cmp_proto = "https:" 27 } 28 if (!("cmp_codesrc" in window)) { 29 window.cmp_codesrc = "1" 30 } 31 window.cmp_getsupportedLangs = function () { 32 var b = ["DE", "EN", "FR", "IT", "NO", "DA", "FI", "ES", "PT", "RO", "BG", "ET", "EL", "GA", "HR", "LV", "LT", "MT", "NL", "PL", "SV", "SK", "SL", "CS", "HU", "RU", "SR", "ZH", "TR", "UK", "AR", "BS"]; 33 if ("cmp_customlanguages" in window) { 34 for (var a = 0; a < window.cmp_customlanguages.length; a++) { 35 b.push(window.cmp_customlanguages[a].l.toUpperCase()) 36 } 37 } 38 return b 39 }; 40 window.cmp_getRTLLangs = function () { 41 var a = ["AR"]; 42 if ("cmp_customlanguages" in window) { 43 for (var b = 0; b < window.cmp_customlanguages.length; b++) { 44 if ("r" in window.cmp_customlanguages[b] && window.cmp_customlanguages[b].r) { 45 a.push(window.cmp_customlanguages[b].l) 46 } 47 } 48 } 49 return a 50 }; 51 window.cmp_getlang = function (j) { 52 if (typeof (j) != "boolean") { 53 j = true 54 } 55 if (j && typeof (cmp_getlang.usedlang) == "string" && cmp_getlang.usedlang !== "") { 56 return cmp_getlang.usedlang 57 } 58 var g = window.cmp_getsupportedLangs(); 59 var c = []; 60 var f = location.hash; 61 var e = location.search; 62 var a = "languages" in navigator ? navigator.languages : []; 63 if (f.indexOf("cmplang=") != -1) { 64 c.push(f.substr(f.indexOf("cmplang=") + 8, 2).toUpperCase()) 65 } 66 else { 67 if (e.indexOf("cmplang=") != -1) { 68 c.push(e.substr(e.indexOf("cmplang=") + 8, 2).toUpperCase()) 69 } 70 else { 71 if ("cmp_setlang" in window && window.cmp_setlang != "") { 72 c.push(window.cmp_setlang.toUpperCase()) 73 } 74 else { 75 if (a.length > 0) { 76 for (var d = 0; d < a.length; d++) { 77 c.push(a[d]) 78 } 79 } 80 } 81 } 82 } 83 if ("language" in navigator) { 84 c.push(navigator.language) 85 } 86 if ("userLanguage" in navigator) { 87 c.push(navigator.userLanguage) 88 } 89 var h = ""; 90 for (var d = 0; d < c.length; d++) { 91 var b = c[d].toUpperCase(); 92 if (g.indexOf(b) != -1) { 93 h = b; 94 break 95 } 96 if (b.indexOf("-") != -1) { 97 b = b.substr(0, 2) 98 } 99 if (g.indexOf(b) != -1) { 100 h = b; 101 break 102 } 103 } 104 if (h == "" && typeof (cmp_getlang.defaultlang) == "string" && cmp_getlang.defaultlang !== "") { 105 return cmp_getlang.defaultlang 106 } 107 else { 108 if (h == "") { 109 h = "EN" 110 } 111 } 112 h = h.toUpperCase(); 113 return h 114 }; 115 (function () { 116 var u = document; 117 var v = u.getElementsByTagName; 118 var h = window; 119 var o = ""; 120 var b = "_en"; 121 if ("cmp_getlang" in h) { 122 o = h.cmp_getlang().toLowerCase(); 123 if ("cmp_customlanguages" in h) { 124 for (var q = 0; q < h.cmp_customlanguages.length; q++) { 125 if (h.cmp_customlanguages[q].l.toUpperCase() == o.toUpperCase()) { 126 o = "en"; 127 break 128 } 129 } 130 } 131 b = "_" + o 132 } 133 134 function x(i, e) { 135 var w = ""; 136 i += "="; 137 var s = i.length; 138 var d = location; 139 if (d.hash.indexOf(i) != -1) { 140 w = d.hash.substr(d.hash.indexOf(i) + s, 9999) 141 } 142 else { 143 if (d.search.indexOf(i) != -1) { 144 w = d.search.substr(d.search.indexOf(i) + s, 9999) 145 } 146 else { 147 return e 148 } 149 } 150 if (w.indexOf("&") != -1) { 151 w = w.substr(0, w.indexOf("&")) 152 } 153 return w 154 } 155 156 var k = ("cmp_proto" in h) ? h.cmp_proto : "https:"; 157 if (k != "http:" && k != "https:") { 158 k = "https:" 159 } 160 var g = ("cmp_ref" in h) ? h.cmp_ref : location.href; 161 var j = u.createElement("script"); 162 j.setAttribute("data-cmp-ab", "1"); 163 var c = x("cmpdesign", "cmp_design" in h ? h.cmp_design : ""); 164 var f = x("cmpregulationkey", "cmp_regulationkey" in h ? h.cmp_regulationkey : ""); 165 var r = x("cmpgppkey", "cmp_gppkey" in h ? h.cmp_gppkey : ""); 166 var n = x("cmpatt", "cmp_att" in h ? h.cmp_att : ""); 167 j.src = k + "//" + h.cmp_host + "/delivery/cmp.php?" + ("cmp_id" in h && h.cmp_id > 0 ? "id=" + h.cmp_id : "") + ("cmp_cdid" in h ? "&cdid=" + h.cmp_cdid : "") + "&h=" + encodeURIComponent(g) + (c != "" ? "&cmpdesign=" + encodeURIComponent(c) : "") + (f != "" ? "&cmpregulationkey=" + encodeURIComponent(f) : "") + (r != "" ? "&cmpgppkey=" + encodeURIComponent(r) : "") + (n != "" ? "&cmpatt=" + encodeURIComponent(n) : "") + ("cmp_params" in h ? "&" + h.cmp_params : "") + (u.cookie.length > 0 ? "&__cmpfcc=1" : "") + "&l=" + o.toLowerCase() + "&o=" + (new Date()).getTime(); 168 j.type = "text/javascript"; 169 j.async = true; 170 if (u.currentScript && u.currentScript.parentElement) { 171 u.currentScript.parentElement.appendChild(j) 172 } 173 else { 174 if (u.body) { 175 u.body.appendChild(j) 176 } 177 else { 178 var t = v("body"); 179 if (t.length == 0) { 180 t = v("div") 181 } 182 if (t.length == 0) { 183 t = v("span") 184 } 185 if (t.length == 0) { 186 t = v("ins") 187 } 188 if (t.length == 0) { 189 t = v("script") 190 } 191 if (t.length == 0) { 192 t = v("head") 193 } 194 if (t.length > 0) { 195 t[0].appendChild(j) 196 } 197 } 198 } 199 var m = "js"; 200 var p = x("cmpdebugunminimized", "cmpdebugunminimized" in h ? h.cmpdebugunminimized : 0) > 0 ? "" : ".min"; 201 var a = x("cmpdebugcoverage", "cmp_debugcoverage" in h ? h.cmp_debugcoverage : ""); 202 if (a == "1") {
203 m = "instrumented"; 204 p = "" 205 } 206 var j = u.createElement("script"); 207 j.src = k + "//" + h.cmp_cdn + "/delivery/" + m + "/cmp" + b + p + ".js"; 208 j.type = "text/javascript"; 209 j.setAttribute("data-cmp-ab", "1"); 210 j.async = true; 211 if (u.currentScript && u.currentScript.parentElement) { 212 u.currentScript.parentElement.appendChild(j) 213 } 214 else { 215 if (u.body) { 216 u.body.appendChild(j) 217 } 218 else { 219 var t = v("body"); 220 if (t.length == 0) { 221 t = v("div") 222 } 223 if (t.length == 0) { 224 t = v("span") 225 } 226 if (t.length == 0) { 227 t = v("ins") 228 } 229 if (t.length == 0) { 230 t = v("script") 231 } 232 if (t.length == 0) { 233 t = v("head") 234 } 235 if (t.length > 0) { 236 t[0].appendChild(j) 237 } 238 } 239 } 240 })(); 241 window.cmp_addFrame = function (b) { 242 if (!window.frames[b]) { 243 if (document.body) { 244 var a = document.createElement("iframe"); 245 a.style.cssText = "display:none"; 246 if ("cmp_cdn" in window && "cmp_ultrablocking" in window && window.cmp_ultrablocking > 0) { 247 a.src = "//" + window.cmp_cdn + "/delivery/empty.html" 248 } 249 a.name = b; 250 document.body.appendChild(a) 251 } 252 else { 253 window.setTimeout(window.cmp_addFrame, 10, b) 254 } 255 } 256 }; 257 window.cmp_rc = function (h) { 258 var b = document.cookie; 259 var f = ""; 260 var d = 0; 261 while (b != "" && d < 100) { 262 d++; 263 while (b.substr(0, 1) == " ") { 264 b = b.substr(1, b.length) 265 } 266 var g = b.substring(0, b.indexOf("=")); 267 if (b.indexOf(";") != -1) { 268 var c = b.substring(b.indexOf("=") + 1, b.indexOf(";")) 269 } 270 else { 271 var c = b.substr(b.indexOf("=") + 1, b.length) 272 } 273 if (h == g) { 274 f = c 275 } 276 var e = b.indexOf(";") + 1; 277 if (e == 0) { 278 e = b.length 279 } 280 b = b.substring(e, b.length) 281 } 282 return (f) 283 }; 284 window.cmp_stub = function () { 285 var a = arguments; 286 __cmp.a = __cmp.a || []; 287 if (!a.length) { 288 return __cmp.a 289 } 290 else { 291 if (a[0] === "ping") { 292 if (a[1] === 2) { 293 a[2]({ 294 gdprApplies: gdprAppliesGlobally, 295 cmpLoaded: false, 296 cmpStatus: "stub", 297 displayStatus: "hidden", 298 apiVersion: "2.0", 299 cmpId: 31 300 }, true) 301 } 302 else { 303 a[2](false, true) 304 } 305 } 306 else { 307 if (a[0] === "getUSPData") { 308 a[2]({version: 1, uspString: window.cmp_rc("")}, true) 309 } 310 else { 311 if (a[0] === "getTCData") { 312 __cmp.a.push([].slice.apply(a)) 313 } 314 else { 315 if (a[0] === "addEventListener" || a[0] === "removeEventListener") { 316 __cmp.a.push([].slice.apply(a)) 317 } 318 else { 319 if (a.length == 4 && a[3] === false) { 320 a[2]({}, false) 321 } 322 else { 323 __cmp.a.push([].slice.apply(a)) 324 } 325 } 326 } 327 } 328 } 329 } 330 }; 331 window.cmp_gpp_ping = function () { 332 return { 333 gppVersion: "1.0", 334 cmpStatus: "stub", 335 cmpDisplayStatus: "hidden", 336 supportedAPIs: ["tcfca", "usnat", "usca", "usva", "usco", "usut", "usct"], 337 cmpId: 31 338 } 339 }; 340 window.cmp_gppstub = function () { 341 var a = arguments; 342 __gpp.q = __gpp.q || []; 343 if (!a.length) { 344 return __gpp.q 345 } 346 var g = a[0]; 347 var f = a.length > 1 ? a[1] : null; 348 var e = a.length > 2 ? a[2] : null; 349 if (g === "ping") { 350 return window.cmp_gpp_ping() 351 } 352 else { 353 if (g === "addEventListener") { 354 __gpp.e = __gpp.e || []; 355 if (!("lastId" in __gpp)) { 356 __gpp.lastId = 0 357 } 358 __gpp.lastId++; 359 var c = __gpp.lastId; 360 __gpp.e.push({id: c, callback: f}); 361 return {eventName: "listenerRegistered", listenerId: c, data: true, pingData: window.cmp_gpp_ping()} 362 } 363 else { 364 if (g === "removeEventListener") { 365 var h = false;
366 __gpp.e = __gpp.e || []; 367 for (var d = 0; d < __gpp.e.length; d++) { 368 if (__gpp.e[d].id == e) { 369 __gpp.e[d].splice(d, 1); 370 h = true; 371 break 372 } 373 } 374 return {eventName: "listenerRemoved", listenerId: e, data: h, pingData: window.cmp_gpp_ping()} 375 } 376 else { 377 if (g === "getGPPData") { 378 return { 379 sectionId: 3, 380 gppVersion: 1, 381 sectionList: [], 382 applicableSections: [0], 383 gppString: "", 384 pingData: window.cmp_gpp_ping() 385 } 386 } 387 else { 388 if (g === "hasSection" || g === "getSection" || g === "getField") { 389 return null 390 } 391 else { 392 __gpp.q.push([].slice.apply(a)) 393 } 394 } 395 } 396 } 397 } 398 }; 399 window.cmp_msghandler = function (d) { 400 var a = typeof d.data === "string"; 401 try { 402 var c = a ? JSON.parse(d.data) : d.data 403 } 404 catch (f) { 405 var c = null 406 } 407 if (typeof (c) === "object" && c !== null && "__cmpCall" in c) { 408 var b = c.__cmpCall; 409 window.__cmp(b.command, b.parameter, function (h, g) { 410 var e = {__cmpReturn: {returnValue: h, success: g, callId: b.callId}}; 411 d.source.postMessage(a ? JSON.stringify(e) : e, "*") 412 }) 413 } 414 if (typeof (c) === "object" && c !== null && "__uspapiCall" in c) { 415 var b = c.__uspapiCall; 416 window.__uspapi(b.command, b.version, function (h, g) { 417 var e = {__uspapiReturn: {returnValue: h, success: g, callId: b.callId}}; 418 d.source.postMessage(a ? JSON.stringify(e) : e, "*") 419 }) 420 } 421 if (typeof (c) === "object" && c !== null && "__tcfapiCall" in c) { 422 var b = c.__tcfapiCall; 423 window.__tcfapi(b.command, b.version, function (h, g) { 424 var e = {__tcfapiReturn: {returnValue: h, success: g, callId: b.callId}}; 425 d.source.postMessage(a ? JSON.stringify(e) : e, "*") 426 }, b.parameter) 427 } 428 if (typeof (c) === "object" && c !== null && "__gppCall" in c) { 429 var b = c.__gppCall; 430 window.__gpp(b.command, function (h, g) { 431 var e = {__gppReturn: {returnValue: h, success: g, callId: b.callId}}; 432 d.source.postMessage(a ? JSON.stringify(e) : e, "*") 433 }, "parameter" in b ? b.parameter : null, "version" in b ? b.version : 1) 434 } 435 }; 436 window.cmp_setStub = function (a) {
437 if (!(a in window) || (typeof (window[a]) !== "function" && typeof (window[a]) !== "object" && (typeof (window[a]) === "undefined" || window[a] !== null))) { 438 window[a] = window.cmp_stub; 439 window[a].msgHandler = window.cmp_msghandler; 440 window.addEventListener("message", window.cmp_msghandler, false) 441 } 442 }; 443 window.cmp_setGppStub = function (a) { 444 if (!(a in window) || (typeof (window[a]) !== "function" && typeof (window[a]) !== "object" && (typeof (window[a]) === "undefined" || window[a] !== null))) { 445 window[a] = window.cmp_gppstub; 446 window[a].msgHandler = window.cmp_msghandler; 447 window.addEventListener("message", window.cmp_msghandler, false) 448 } 449 }; 450 window.cmp_addFrame("__cmpLocator"); 451 if (!("cmp_disableusp" in window) || !window.cmp_disableusp) { 452 window.cmp_addFrame("__uspapiLocator") 453 } 454 if (!("cmp_disabletcf" in window) || !window.cmp_disabletcf) { 455 window.cmp_addFrame("__tcfapiLocator") 456 } 457 if (!("cmp_disablegpp" in window) || !window.cmp_disablegpp) { 458 window.cmp_addFrame("__gppLocator") 459 } 460 window.cmp_setStub("__cmp"); 461 if (!("cmp_disabletcf" in window) || !window.cmp_disabletcf) { 462 window.cmp_setStub("__tcfapi") 463 } 464 if (!("cmp_disableusp" in window) || !window.cmp_disableusp) { 465 window.cmp_setStub("__uspapi") 466 } 467 if (!("cmp_disablegpp" in window) || !window.cmp_disablegpp) { 468 window.cmp_setGppStub("__gpp") 469 } 470 ;</script>
470 471 <link rel="preconnect" href="https://sso.onetz.de"> 472 <link rel="dns-prefetch" href="https://sso.onetz.de"> 473 <link rel="preconnect" href="https://matomo.oberpfalzmedien.de"> 474 <link rel="dns-prefetch" href="https://matomo.oberpfalzmedien.de"> 475 <link rel="preconnect" href="https://media.onetz.de"> 476 <link rel="dns-prefetch" href="https://media.onetz.de"> 477 <!-- content from custom file - live --> 478 <link rel="preconnect" href="https://piano-connector.onetz.de"><link rel="dns-prefetch" href="https://piano-connector.onetz.de"> 479 <link rel="dns-prefetch" href="https://www.npttech.com"> 480 <link rel="preconnect" href="https://api-esp.piano.io"><link rel="dns-prefetch" href="https://api-esp.piano.io"> 481 <link rel="preconnect" href="https://cdn.tinypass.com"><link rel="dns-prefetch" href="https://cdn.tinypass.com"> 482 <link rel="preconnect" href="https://buy.tinypass.com"><link rel="dns-prefetch" href="https://buy.tinypass.com"> 483 <link rel="dns-prefetch" href="https://cdnjs.cloudflare.com"> 484 <link rel="dns-prefetch" href="https://cdn.cxense.com"> 485 <link rel="dns-prefetch" href="https://api.cxense.com"> 486 <link rel="dns-prefetch" href="https://api-v3.tinypass.com"> 487 <link rel="dns-prefetch" href="https://comcluster.cxense.com"> 488 489
489<script> document.cookie = "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; var setNptTechAdblockerCookie = function(adblocker) { var d = new Date(); d.setTime(d.getTime() + 60 * 5 * 1000); document.cookie = "__adblocker=" + (adblocker ? "true" : "false") + "; expires=" + d.toUTCString() + "; path=/"; };</script>
489 490
490<script async="true" src="//www.npttech.com/advertising.js" onerror="setNptTechAdblockerCookie(true);"></script>
490 491 492
492<script> 493 let pianoCallback = function() { 494 console.log("+++ Piano onload handler"); 495 tp = window.tp || []; 496 //window.PianoESPConfig = {id: 83}; 497 window.PianoESPConfig = { 498 hashId: "E715F212-84C0-4C99-AE1A-4CD98A9D31E9" 499 } 500 501 let head = document.head; 502 let script = document.createElement('script'); 503 script.type = 'text/javascript'; 504 script.src = "https://piano-connector.onetz.de/getScript"; 505 script.async = true; 506 head.appendChild(script); 507 }; 508 509 tp = window["tp"] || []; 510 tp.push(["setAid", 'CTNhWV49vr']); 511 tp.push(["setCxenseSiteId", "1139738195517256185"]); 512 tp.push(["setMaxCookieExpirationInDays", 14]); 513 tp.push(["setEndpoint", 'https://buy.tinypass.com/api/v3']); 514 tp.push(["setUseTinypassAccounts", false]); 515 tp.push(["setUsePianoIdUserProvider", false]); 516 tp.push(["setContentCreated", "2026-09-18T16:55:27"]); 517tp.push(["setContentAuthor", "Redaktion ONETZ"]); 518tp.push(["setContentSection", "Oberpfalz"]); 519tp.push(["setContentIsNative", "false"]); 520tp.push(["setTags", ["goodvibesonetz","Werbefrei","Foto","Artikelkategorie C","Bilder_als_Galerie","Artikel_immer_frei","Newsblog"]]); 521tp.push(["setCustomVariable", "inNewsApp", "false"]); 522tp.push(["setCustomVariable", "destPath", "node\/5481091"]); 523tp.push(["setCustomVariable", "Ort", "Deutschland und die Welt"]); 524tp.push(["setDontScrollTopModal", true]); 525 526 </script>
526 527
527<script src="//cdn.tinypass.com/api/tinypass.min.js" async onload="pianoCallback()"></script>
527 528<!-- END: content from custom file - live --> 529
529<script type="text/plain" class="cmplazyload" data-cmp-vendor="s905">
vendor: 328 bytes, lines 529-530
529 530 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','
530GTM-KW6RRB2
vendor: 3 bytes, line 530
530');
530</script>
530 531 <title>Good News: Einfach gute Nachrichten | Onetz</title> 532 <link rel="preload" href="/sites/all/themes/dnt_onet22/dist/fonts/Open_Sans_400.woff2" as="font" type="font/woff2" crossorigin> 533 <link rel="preload" href="/sites/all/themes/dnt_onet22/dist/fonts/Open_Sans_700.woff2" as="font" type="font/woff2" crossorigin> 534 535<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 536<link rel="shortcut icon" href="/sites/all/themes/dnt_onet22/favicon.ico" type="image/x-icon" /> 537<meta property="og:title" content="Good News: Einfach gute Nachrichten" /> 538<meta name="description" content="Es gibt sie noch, die guten Nachrichten. Weil diese in der Informationsflut zu Krisen, Kriegen und Katastrophen aber untergehen, bieten wir in unserem Ticker nur positive Nachrichten." /> 539<meta property="og:description" content="Es gibt sie noch, die guten Nachrichten. Weil diese in der Informationsflut zu Krisen, Kriegen und Katastrophen aber untergehen, bieten wir in unserem Ticker nur positive Nachrichten." /> 540<meta name="keywords" content="Deutschland und die Welt,goodvibesonetz" /> 541<meta property="og:image" content="https://www.onetz.de/f/ic/og/articlemedia/2026/09/16/d606c09a-9416-44c6-9227-a9feb8e09e48.jpg" /> 542<meta property="og:type" content="article" /> 543<link rel="canonical" href="https://www.onetz.de/oberpfalz/deutschland-welt/good-news-einfach-gute-nachrichten-id5481091.html" /> 544<meta property="og:url" content="https://www.onetz.de/oberpfalz/deutschland-welt/good-news-einfach-gute-nachrichten-id5481091.html" /> 545<meta name="revisit-after" content="1 day" /> 546<meta name="robots" content="index, follow, noarchive, max-image-preview:large" /> 547 <meta name="format-detection" content="telephone=no"/> 548 <meta name="p:domain_verify" content="a33e85b39b0429eab7efcf667957275a"/> 549 <meta name="cXenseParse:leb-user_needs" content="UpdateMe" /><meta name="cXenseParse:location" content="Deutschland und die Welt" /><meta name="pubdate" content="2026-09-18T16:55:27+02:00" /><meta name="cXenseParse:articleid" content="5481091" /><meta name="cXenseParse:publishtime" content="2026-09-18T16:55:27+02:00" /><meta name="cXenseParse:pageclass" content="article" /><meta property="article:modified_time" content="2026-09-18T16:55:53+02:00" />
549<script type="application/ld+json">{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsMediaOrganization","@id":"https:\/\/www.onetz.de\/#organization","name":"Oberpfalz Medien","url":"https:\/\/www.oberpfalzmedien.de\/","foundingDate":"1946-05-31","logo":{"@type":"ImageObject","url":"https:\/\/www.onetz.de\/sites\/all\/themes\/dnt_onet\/images\/onetz_logo.png","width":218,"height":60},"sameAs":["https:\/\/www.facebook.com\/onetz.de\/","https:\/\/x.com\/onetz_de\/","https:\/\/www.instagram.com\/onetz.de\/","https:\/\/www.youtube.com\/user\/Oberpfalznetz"],"subOrganization":[{"@type":"Organization","@id":"https:\/\/zeitung.onetz.de\/","name":"Onetz Epaper"},{"@type":"Organization","@id":"https:\/\/trauer.onetz.de\/","name":"Onetz Traueranzeigen"}]},{"@type":"WebSite","@id":"https:\/\/www.onetz.de\/#website","name":"Onetz","url":"https:\/\/www.onetz.de\/","publisher":{"@id":"https:\/\/www.onetz.de\/#organization"},"inLanguage":"de-DE"},{"@type":"BreadcrumbList","@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":0,"item":{"@id":"https:\/\/www.onetz.de\/","name":"Startseite"}},{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/www.onetz.de\/oberpfalz","name":"Oberpfalz"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html","name":"Good News: Einfach gute Nachrichten"}}]},{"@type":"WebPage","@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html#webpage","url":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html","name":"Good News: Einfach gute Nachrichten | Onetz","isPartOf":"https:\/\/www.onetz.de\/#website","breadcrumb":{"@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html#breadcrumb"},"publisher":{"@id":"https:\/\/www.onetz.de\/#organization"},"inLanguage":"de-DE","about":{"@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html#article"},"primaryImageOfPage":{"@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html#primaryimage"}},{"@type":"Article","@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html#article","headline":"Good News: Einfach gute Nachrichten","datePublished":"2026-09-18T16:55:27+02:00","dateModified":"2026-09-18T16:55:53+02:00","publisher":{"@id":"https:\/\/www.onetz.de\/#organization"},"mainEntityOfPage":{"@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html#webpage"},"speakable":{"@type":"SpeakableSpecification","cssSelector":["#page h1"]},"inLanguage":"de-DE","description":"Es gibt sie noch, die guten Nachrichten. Weil diese in der Informationsflut \nzu Krisen, Kriegen und Katastrophen aber untergehen, bieten wir in unserem \nTicker nur positive Nachrichten.\n","keywords":"goodvibesonetz","image":[{"@type":"ImageObject","@id":"https:\/\/www.onetz.de\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html#primaryimage","url":"https:\/\/www.onetz.de\/f\/ic\/og\/articlemedia\/2026\/09\/16\/d606c09a-9416-44c6-9227-a9feb8e09e48.jpg","width":1280,"he
549ight":720,"caption":"Weil gute Nachrichten in der Informationsflut oft untergehen, bieten wir in unserem Ticker nur positive Nachrichten.","copyrightHolder":{"@type":"Person","name":"|Bild: Kiattisak - stock.adobe.com"}},{"@type":"ImageObject","url":"https:\/\/www.onetz.de\/f\/ic\/og-ft\/articlemedia\/2026\/09\/16\/d606c09a-9416-44c6-9227-a9feb8e09e48.jpg","width":1280,"height":960,"caption":"Weil gute Nachrichten in der Informationsflut oft untergehen, bieten wir in unserem Ticker nur positive Nachrichten.","copyrightHolder":{"@type":"Person","name":"|Bild: Kiattisak - stock.adobe.com"}},{"@type":"ImageObject","url":"https:\/\/www.onetz.de\/f\/ic\/og-sq\/articlemedia\/2026\/09\/16\/d606c09a-9416-44c6-9227-a9feb8e09e48.jpg","width":1200,"height":1200,"caption":"Weil gute Nachrichten in der Informationsflut oft untergehen, bieten wir in unserem Ticker nur positive Nachrichten.","copyrightHolder":{"@type":"Person","name":"|Bild: Kiattisak - stock.adobe.com"}}],"author":[{"@type":"Person","name":"Redaktion ONETZ","url":"https:\/\/www.onetz.de\/autoren\/redaktion-onetz-id2884544.html"}],"isAccessibleForFree":"true"}]}</script>
549 <link type="text/css" rel="stylesheet" media="all" href="/sites/default/files/css/css_f5c416940789b425c2f831281258f3b9.css" /> 550<link type="text/css" rel="stylesheet" media="print" href="/sites/default/files/css/css_53fe562dc91931f00c2b171f18142621.css" /> 551<link type="text/css" rel="stylesheet" media="all" href="/sites/default/files/ctools/css/798c0d94afe0ffe3090732fe775be78b.css?G" /> 552<link type="text/css" rel="stylesheet" media="all" href="/sites/default/files/ctools/css/0e514fda0fde2f027c2ca630510ef11d.css?G" /> 553<link type="text/css" rel="stylesheet" media="all" href="/sites/default/files/ctools/css/01f4950a0aeef3f3c05756a88ca9c1a8.css?G" /> 554<link type="text/css" rel="stylesheet" media="all" href="/sites/default/files/ctools/css/416f18035ea0db50d547a850551b48e9.css?G" /> 555
555<script type="text/javascript" src="/sites/default/files/js/js_315865cf016fa6b9e9af81e9ded5b90f.jsmin.js"></script>
vendor: 1 bytes, line 555
555
556<script type="text/javascript"> 557<!--//--><![CDATA[//><!-- 558jQuery.extend(Drupal.settings, {"basePath":"\/","dntAdSettings":{"insertAdEvery":5,"commonAds":true},"dnt":{"staticnav_user_authenticated_path":"mein_onetzplus","staticnav_user_authenticated_label":"Profil","cmp2":true,"cmp2_previewsize":"300x300","cmp2_previewbgcolor":"#eaebee"},"hasso":{"url":"https:\/\/sso.onetz.de","clientid":"nativemedia","althreshold":"15","autologout_enabled":true,"udsync_enabled":true},"mimas":{"slickLazyload":"ondemand"},"dntAds":{"inlineminchar":500,"inlinemincharstart":250,"glomexContextualPlayerId":"4059a11hkc4r38zh","ariahidden":true},"CToolsUrlIsAjaxTrusted":{"\/deutschland-welt\/drogenschmuggel-koerper-festnahme-grenze-schirnding-id5199047.html":true,"\/oberpfalz\/deutschland-welt\/good-news-einfach-gute-nachrichten-id5481091.html":true}}); 559//--><!]]> 560</script>
560 561 <!--[if lt IE 9]> 562
562<script src="/sites/all/themes/mimas_sparkle/js/html5shiv.min.js"></script>
562 563
563<script src="/sites/all/themes/mimas_sparkle/js/eCSStender.js"></script>
563 564 <![endif]--> 565
565<script src="/sites/all/themes/dnt_onet22/dist/js/theme.js?v=17" defer></script>
565 566
566<script type="text/javascript" src="/sites/default/files/js/js_874591d04e6fccd425bc1d693caac72b.js"></script>
566 567
567<script id="trfAdSetup">// ads are disabled for this page</script>
567<script>var dntAdDocId=5481091;var dntAdInlineStartPos=0;</script>
567
567<script> 568 (function (_config) { 569 var script = document.createElement("script"); 570 script.src = "https://tag.aticdn.net/piano-analytics.js"; 571 script.async = true; 572 script.crossorigin = "anonymous"; 573 script.dataset.config = JSON.stringify(_config); 574 document.head.appendChild(script); 575 })({ 576 site: 646196, 577 collectDomain: "nkndtjf.pa-cd.com", 578 consentDefaultMode: "opt-in", 579 }); 580 </script>
580 581
581<script type="text/plain" class="cmplazyload" data-cmp-vendor="s1016"> 582 (function() 583 { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://d.nativendo.de/cds/delivery/init'; var sc = document.getElementsByTagName('script')[0]; sc.parentNode.insertBefore(s, sc); } 584 )(); 585 </script>
585 586
586<script type="text/plain" class="cmplazyload" data-cmp-vendor="c34041" async id="ebx" data-cmp-src="//applets.ebxcdn.com/ebx.js" data-applet-id="hmhgxuvr"></script>
586 587
587<script type='text/plain' class="cmplazyload" data-cmp-vendor="c46195" async data-cmp-src='https://d.smartico.one/get/hs/9bd1f4cd69ed3273e8460e081bf17bb504122282'></script>
587 588
588<script type='text/plain' class="cmplazyload" data-cmp-vendor="c46195" async data-cmp-src='https://d.smartico.one/get/hs/f6511172f596fd2babb7eede57cfcbf993f91b80'></script>
588 589 <link rel='stylesheet' class="cmplazyload" type='text/css' data-cmp-vendor="c46195" data-cmp-href='https://d.smartico.one/get/hs/fbe34af0a453491a0a185231e4b352b39c749648' /> 590 <!-- Extern HeadData --> 591</head> 592<body class="page not-front not-logged-in node-type-story no-sidebars i18n-de page-oberpfalz-deutschland-welt-good-news-einfach-gute-nachrichten-id5481091html section-oberpfalz page-panels dnt_onet22 not-admin-page no-premium-access nav-mobile"> 593 <noscript><iframe scr="about:blank" class="cmplazyload" data-cmp-vendor="s905" data-cmp-src="https://www.googletagmanager.com/ns.html?id=GTM-KW6RRB2" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 594<!--atools --> 595
595<script type="text/plain" async class="cmplazyload" data-cmp-vendor="c22017" data-cmp-src="https://www.getback.ch/app/tracking/HIVu3"></script>
595 596
596<script type="text/plain" async class="cmplazyload" data-cmp-vendor="s1474" data-cmp-src="https://static.cleverpush.com/channel/loader/W98h9raGm8cf9R5Nf.js"></script>
596 597 598 599 <div id="skip-link"><ul> 600 <!-- --><!-- <li><em><a href="#main-menu">--><!-- ↓</a></em></li>--> 601<!-- --><!-- <li><em><a href="#navigation">--><!-- ↓</a></em></li>--> 602<!-- --> <li><em><a href="#content-area">Zum Inhalt springen ↓</a></em></li> 603 </ul></div> 604 605 <div id="page-wrapper"> 606 <div class="ad ad-left"><div class="region region-ad-left"> 607 <section id="block-block-7" class="block block-block first last region-odd odd region-count-1 count-3"> 608 609 <div class="content"> 610 <div id="traffective-ad-Skyscraper_2" style="display: none;" class="Skyscraper_2" aria-hidden="true"></div> </div> 611 612 </section> <!-- /.block --> 613</div> <!-- /.region --> 614</div> <div class="ad ad-right"><div class="region region-ad-right"> 615 <section id="block-block-5" class="block block-block first last region-odd even region-count-1 count-4"> 616 617 <div class="content"> 618 <div class="WPSkyscraper" id="traffective-ad-WPSkyscraper" style="display: none;" aria-hidden="true"> </div> 619 620<div class="Skyscraper" id="traffective-ad-Skyscraper" style="display: none;" aria-hidden="true"> </div> 621 </div> 622 623 </section> <!-- /.block --> 624</div> <!-- /.region --> 625</div> <div class="ad ad-top"><div class="region region-ad-top"> 626 <section id="block-block-4" class="block block-block first region-odd odd region-count-1 count-1"> 627 628 <div class="content"> 629 <div class="WPSuperbanner" id="traffective-ad-WPSuperbanner" style="display: none;" aria-hidden="true"> </div> 630 </div> 631 632 </section> <!-- /.block --> 633<section id="block-block-8" class="block block-block last region-even even region-count-2 count-2"> 634 635 <div class="content"> 636 <div id="nl_signup_header"></div> </div> 637 638 </section> <!-- /.block --> 639</div> <!-- /.region --> 640</div> <div id="page"> 641 642 <div class="region region-header-top"> 643 <section id="block-menu-menu-servicelinks" class="block block-menu first last region-odd odd region-count-1 count-5"> 644 645 <div class="content"> 646 <ul class="menu"><li class="leaf e-paper first"><a href="https://zeitung.onetz.de/" target="_blank">E-Paper</a></li> 647<li class="leaf anzeigen"><a href="/anzeigen-uebersicht">Anzeigen</a></li> 648<li class="leaf trauer"><a href="https://trauer.onetz.de?utm_source=onetz&utm_medium=servicemenue" target="_blank">Trauer</a></li> 649<li class="leaf newsletter"><a href="https://www.onetz.de/newsletter">Newsletter</a></li> 650<li class="leaf podcasts"><a href="https://www.onetz.de/podcast/">Podcasts</a></li> 651<li class="leaf abo-service"><a href="/abo-service">Abo & Service</a></li> 652<li class="leaf onetzplus-abonnieren last"><a href="https://www.onetz.de/plus">OnetzPlus abonnieren</a></li> 653</ul> </div> 654 655 </section> <!-- /.block --> 656</div> <!-- /.region --> 657 658 <header id="header"><div class="section clearfix"> 659 660 661 <div class="region region-header"> 662 <section id="block-block-3" class="block block-block first region-odd even region-count-1 count-6"> 663 664 <div class="content"> 665 <div id="logo"><a href="/" id="front-header"><span class="txt">onetz</span></a></div><div id="abo_button"><a href="/plus"><span class="txt">abo</span></a></div> </div> 666 667 </section> <!-- /.block --> 668<section id="block-dnt_custom_content_displays-2" class="block block-dnt_custom_content_displays region-even odd region-count-2 count-7"> 669 670 <div class="content"> 671 <form action="/oberpfalz/deutschland-welt/good-news-einfach-gute-nachrichten-id5481091.html" accept-charset="UTF-8" method="post" id="dnt-custom-content-displays-cntloc-search-form"> 672<div><div class="container-inline"><div class="form-item" id="edit-cntloc-wrapper"> 673 <label for="edit-cntloc">Ort / Thema: </label> 674 <input type="text" maxlength="128" name="cntloc" id="edit-cntloc" size="40" value="" class="form-text form-autocomplete" /> 675</div> 676<input class="autocomplete" type="hidden" id="edit-cntloc-autocomplete" value="https://www.onetz.de/?q=dnt/search/cntloc/ac" disabled="disabled" /><input type="submit" name="op" id="edit-submit" value="Suche" class="form-submit" /> 677<input type="hidden" name="form_build_id" id="form-BzI64e7JYxhG_Qg4febeBaf441GN7daQW4p9uvZZIfg" value="form-BzI64e7JYxhG_Qg4febeBaf441GN7daQW4p9uvZZIfg" /> 678<input type="hidden" name="form_id" id="edit-dnt-custom-content-displays-cntloc-search-form" value="dnt_custom_content_displays_cntloc_search_form" />
679<script> 680 jQuery("#dnt-custom-content-displays-cntloc-search-form .form-submit").replaceWith("<button type=\"submit\" name=\"op\" id=\"edit-submit-cntloc\" class=\"form-submit\" title=\"Suche\"><span>Suche</span></button>"); 681 jQuery("#dnt-custom-content-displays-cntloc-search-form #edit-cntloc").attr("placeholder", "Ort / Thema"); 682 </script>
682</div> 683</div></form> 684 </div> 685 686 </section> <!-- /.block --> 687<section id="block-dnt_custom_content_displays-3" class="block block-dnt_custom_content_displays last region-odd even region-count-3 count-8"> 688 689 <div class="content"> 690 <ul class="static-nav"> 691 <li class="navbar-element navbar-element-search"><a class="search-button" href="#" id="mobile-search"><span class="txt">Suchen</span></a></li><li class="navbar-element navbar-element-user"><a class="sl-button" href="#"><span class="txt">Login</span></a></li><li class="navbar-element navbar-element-hamburger"><button class="hamburger hamburger--squeeze" type="button" aria-label="Menü"> 692 <span class="hamburger-box"> 693 <span class="hamburger-inner"> 694 </span> 695 </span> 696</button><span class="txt">Menü</span></li> 697</ul> </div> 698 699 </section> <!-- /.block --> 700</div> <!-- /.region --> 701 702 </div></header> 703 704 <hr /> 705 706 <div id="main-wrapper"><div id="main" class="clearfix with-navigation"> 707 708 <div id="content" class="column"><div class="section"> 709 710 711 712 <hr class="element-invisible"> 713 714 715 716 717 718 719 720 <div id="content-area"><main> 721 <div class="panel-display panel-1col clear-block" > 722 <div class="panel-panel panel-col"> 723 <div><div class="cnt-head-banner" aria-hidden="true"><div id="traffective-ad-Billboard" style="display: none;" class="Billboard childmargin" aria-hidden="true"></div></div><div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node-content" id="page-content-main" > 724 725 726 727 <div class="pane-content"> 728 729 730 <div class="field field-mimas-node-head-meta categories"><span id="cnt-id-main" data-mnid="5481091"></span> 731 732<a class="location" href="/oberpfalz/deutschland-welt">Deutschland und die Welt</a><div class="date"> 73318.09.2026 - 16:55 Uhr</div> 734 735</div><div class="field field-mimas-node-title node-title"><h1 class="title">Good News: Einfach gute Nachrichten</h1></div><div class="field field-teaser"> 736 <div class="field-items"> 737 <div class="field-item odd"> 738 739<p>Es gibt sie noch, die guten Nachrichten. Weil diese in der Informationsflut zu Krisen, Kriegen und Katastrophen aber untergehen, bieten wir in unserem Ticker nur positive Nachrichten.</p> 740 741 </div> 742 </div> 743</div> 744<div class="field field-mimas-node-author"><div class="author">von <span class="name"><a href="/autoren/redaktion-onetz-id2884544.html">Redaktion ONETZ</a></span></div></div><div class="field field-mimas-primary-article-image article-detail-image"><div class="picture"><a href="/f/ic/ga-large/articlemedia/2026/09/16/d606c09a-9416-44c6-9227-a9feb8e09e48.jpg" class="ps-item" data-psg="1" data-size="960x640" data-caption='<div>Bild: Kiattisak - stock.adobe.com</div>Weil gute Nachrichten in der Informationsflut oft untergehen, bieten wir in unserem Ticker nur positive Nachrichten.'><picture><source srcset="https://www.onetz.de/f/ic/Detailed-s/articlemedia/2026/09/16/d606c09a-9416-44c6-9227-a9feb8e09e48.webp 410w, https://www.onetz.de/f/ic/Detailed/articlemedia/2026/09/16/d606c09a-9416-44c6-9227-a9feb8e09e48.webp 805w" type="image/webp" sizes="(min-width: 44.6875rem) 805px, 410px" /><img src="https://www.onetz.de/f/ic/Detailed/articlemedia/2026/09/16/d606c09a-9416-44c6-9227-a9feb8e09e48.jpg" alt="Weil gute Nachrichten in der Informationsflut oft untergehen, bieten wir in unserem Ticker nur positive Nachrichten. Bild: Kiattisak - stock.adobe.com" title="" width="805" height="453" class="img-responsive"/></picture></a><div class="caption">Weil gute Nachrichten in der Informationsflut oft untergehen, bieten wir in unserem Ticker nur positive Nachrichten.</div><div class="legal">Bild: Kiattisak - stock.adobe.com</div></div></div><div class="field field-dnt-story-register possible-cnt-inner piano_container_artikel_anfang"><!-- --></div><div class="field field-dnt-body-cmp field-body"> 745<p>Obwohl negative Nachrichten häufig mehr Aufmerksamkeit bekommen, passieren jeden Tag groÃartige Dinge, die Hoffnung geben, Mut machen, motivieren und ein Lächeln sc
745henken. Wir sammeln auf dieser Seite die besten "Good News" und wichtigsten lösungsorientierten Nachrichten. Damit zeigen wir, was sonst oft untergeht: inspirierende Geschichten, erfreuliche Meldungen und positive Entwicklungen aus der Oberpfalz, Bayern, Deutschland und aus aller Welt. </p> 746 747<div class="mt-custom">
747<script async data-cmp-vendor="c30759" data-cmp-src="https://cdn.tickaroo.com/webng/embedjs/tik4.js" class="cmplazyload" type="text/plain"></script>
747 748<tickaroo-liveblog liveblogid="6a8ecee647ab5937ec9c340b" themeid="lct_61dd6d819e04ac3a7c8ba531" clientid="61dd6d819e04ac3a7c8ba534" data-cmp-vendor="c30759" data-cmp-preview="300x300" data-cmp-preview-bgcolor="#eaebee"></tickaroo-liveblog></div> 749 750</div><div class="field field-dnt-premium-piano-footer"><div class="piano_container_artikel_ende"></div> 751</div><div class="field field-mimas-smb"><ul id="mimas-smb-items" class="mimas-smb-items__list"> 752 <li class="mimas-smb-items__element mimas-smb-items__element--whatsapp"><a class="mimas-smb-items__link mimas-smb-items__link--whatsapp" data-service="whatsapp" href="whatsapp://send?text=Good%20News%3A%20Einfach%20gute%20Nachrichten%20https%3A%2F%2Fwww.onetz.de%2Foberpfalz%2Fdeutschland-welt%2Fgood-news-einfach-gute-nachrichten-id5481091.html%3Fmtm_campaign%3Dsmb-from%26mtm_kwd%3Dwhatsapp" title="Bei WhatsApp teilen" rel="nofollow noreferrer"><span class="mimas-smb-items__text">WhatsApp</span></a> 753</li> 754 <li class="mimas-smb-items__element mimas-smb-items__element--facebook"><a class="mimas-smb-items__link mimas-smb-items__link--facebook" data-service="facebook" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.onetz.de%2Foberpfalz%2Fdeutschland-welt%2Fgood-news-einfach-gute-nachrichten-id5481091.html%3Fmtm_campaign%3Dsmb-from%26mtm_kwd%3Dfacebook" title="Bei Facebook teilen" rel="nofollow noreferrer"><span class="mimas-smb-items__text">Facebook</span></a> 755</li> 756 <li class="mimas-smb-items__element mimas-smb-items__element--messenger"><a class="mimas-smb-items__link mimas-smb-items__link--messenger" data-service="messenger" href="fb-messenger://share/?link=https%3A%2F%2Fwww.onetz.de%2Foberpfalz%2Fdeutschland-welt%2Fgood-news-einfach-gute-nachrichten-id5481091.html%3Fmtm_campaign%3Dsmb-from%26mtm_kwd%3Dmessenger" title="Bei Messenger teilen" rel="nofollow noreferrer"><span class="mimas-smb-items__text">Messenger</span></a> 757</li> 758 <li class="mimas-smb-items__element mimas-smb-items__element--pinterest"><a class="mimas-smb-items__link mimas-smb-items__link--pinterest" data-service="pinterest" href="https://www.pinterest.com/pin/create/link/?url=https%3A%2F%2Fwww.onetz.de%2Foberpfalz%2Fdeutschland-welt%2Fgood-news-einfach-gute-nachrichten-id5481091.html%3Fmtm_campaign%3Dsmb-from%26mtm_kwd%3Dpinterest&media=https%3A%2F%2Fwww.onetz.de%2Ff%2Fic%2Fog%2Farticlemedia%2F2026%2F09%2F16%2Fd606c09a-9416-44c6-9227-a9feb8e09e48.jpg&description=Good%20News%3A%20Einfach%20gute%20Nachrichten" title="Bei Pinterest pinnen" rel="nofollow noreferrer"><span class="mimas-smb-items__text">Pinterest</span></a> 759</li> 760 <li class="mimas-smb-items__element mimas-smb-items__element--twitter"><a class="mimas-smb-items__link mimas-smb-items__link--twitter" data-service="twitter" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.onetz.de%2Foberpfalz%2Fdeutschland-welt%2Fgood-news-einfach-gute-nachrichten-id5481091.html%3Fmtm_campaign%3Dsmb-from%26mtm_kwd%3Dtwitter&text=Good%20News%3A%20Einfach%20gute%20Nachrichten" title="Bei X (Twitter) teilen" rel="nofollow noreferrer"><span class="mimas-smb-items__text">X (Twitter)</span></a> 761</li> 762 <li class="mimas-smb-items__element mimas-smb-items__element--mail"><a class="mimas-smb-items__link mimas-smb-items__link--mail" data-service="mail" href="mailto:?subject=Good%20News%3A%20Einfach%20gute%20Nachrichten&body=https%3A%2F%2Fwww.onetz.de%2Foberpfalz%2Fdeutschland-welt%2Fgood-news-einfach-gute-nachrichten-id5481091.html%3Fmtm_campaign%3Dsmb-from%26mtm_kwd%3Dmail" title="Per E-Mail versenden" rel="nofollow noreferrer"><span class="mimas-smb-items__text">Mail</span></a> 763</li> 764 <li class="mimas-smb-items__element mimas-smb-items__element--print"><a class="mimas-smb-items__link mimas-smb-items__link--print" data-service="print" href="javascript:window.print();" title="Drucken"><span class="mimas-smb-items__text">Print</span></a> 765</li> 766</ul>
767<script> 768 const mimas_smbs_list = document.getElementById("mimas-smb-items"); 769 console.log("PAQ loaded"); 770 if (mimas_smbs_list) { 771 const mimas_smbs_links = mimas_smbs_list.querySelectorAll(":scope a"); 772 if (mimas_smbs_links) { 773 mimas_smbs_links.forEach(function(element) { 774 element.addEventListener("click", function(e) { 775 if (typeof _paq !== "undefined") { 776 _paq.push(["trackEvent", "SMB Share to", element.dataset.service, window.location.pathname]); 777 } 778 }) 779 }) 780 } 781 } 782</script>
782 783</div> </div> 784 785 786 787 </div> 788<div class="panel-region-separator"></div><div>
788<script>dnt_insert_article_banner_inline();</script>
788</div><div class="panel-region-separator"></div><div id="traffective-ad-OutOfPage" style="display: none;" class="OutOfPage childmargin" aria-hidden="true"></div><div class="panel-region-separator"></div><div id="traffective-ad-Billboard_2" style="display: none;" class="Billboard_2 childmargin" aria-hidden="true"></div><div class="panel-region-separator"></div> <div>
788<script> 789$('[data-mnid]').each(function () { 790 var curnid = $(this).addClass('mimas-dr-processed').attr('data-mnid'); 791 var curelem = this; 792 793 $('[data-mnid="' + curnid + '"]').each(function () { 794 if (curelem != this && !$(this).hasClass('mimas-dr-processed')) { 795 this.remove(); 796 } 797 }); 798}); 799 800$(".pane-custom-article-teaser-panel-pane-18:not(:has(.row))").remove(); 801</script>
801</div> 802 <div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-dnt-traffective-banner" > 803 804 805 806 <div class="pane-content"> 807 808 <div id="traffective-ad-Parallax" style="display: none;" class="Parallax childmargin" aria-hidden="true"></div> </div> 809 810 811 812 </div> 813<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node-comment-form noheader" > 814 815 <div class="pane-title text-header h2">Kommentare</div> 816 817 818 <div class="pane-content"> 819 820 <p>Um Kommentare verfassen zu können, müssen Sie sich <a href="/user/login?destination=node%2F5481091%23comment-form" rel="nofollow">anmelden</a>.</p><p>Bitte beachten Sie unsere <a href="/agb-portal/" target="_blank">Nutzungsregeln</a>.</p> </div> 821 822 823 824 </div> 825<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node-comments noheader" > 826 827 828 829 <div class="pane-content"> 830 831 <div id="comments"></div> </div> 832 833 834 835 </div> 836<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node-terms field-terms noheader" > 837 838 <div class="pane-title text-header h2">Klicken Sie hier für mehr Artikel zum Thema:</div> 839 840 841 <div class="pane-content"> 842 843 <div class="item-list"><ul><li class="first last"><a href="/themen/goodvibesonetz" rel="tag" title="">goodvibesonetz</a></li> 844</ul></div> </div> 845 846 847 848 </div> 849<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-dnt-traffective-banner" > 850 851 852 853 <div class="pane-content"> 854 855 <div id="traffective-ad-Billboard_3" style="display: none;" class="Billboard_3 childmargin" aria-hidden="true"></div> </div> 856 857 858 859 </div> 860<div class="panel-region-separator"></div>
860<div class="panels_pane panel-pane pane-views-panes pane-custom-most-popular-panel-pane-1 fullwidth noheader" data-upscore-zone="Good News: Einfach gute Nachrichten"> 861 862 <div class="pane-title text-header h2">Meistgelesene Artikel</div> 863 864 865 <div class="pane-content"> 866 867 <div class="views_view view view-custom-most-popular view-id-custom_most_popular view-display-id-panel_pane_1 mostpopular view-dom-id-1"> 868 869 870 871 872 <div class="view-content"> 873 <ul> 874 <li class="row first" data-mnid-dis="5510664" data-upscore-object-id="5510664"> 875 876 <div class="field field-dnt-primary-article-image-teaser picturewrapper"><a class="picture" href="/oberpfalz/kuemmersbruck/seltener-gast-garten-oleanderschwaermer-kuemmersbruck-entdeckt-id5510664.html"><picture><source srcset="https://www.onetz.de/f/ic/ts-s/articlemedia/2026/09/23/f79637ee-e883-4fc8-b8ea-c226b2a0d9ae.webp?1790263624 114w, https://www.onetz.de/f/ic/ts/articlemedia/2026/09/23/f79637ee-e883-4fc8-b8ea-c226b2a0d9ae.webp?1790263624 410w" type="image/webp" sizes="(min-width: 44.6875rem) 410px, 114px" /><img src="https://www.onetz.de/f/ic/ts/articlemedia/2026/09/23/f79637ee-e883-4fc8-b8ea-c226b2a0d9ae.jpg?1790263624" alt="Bild: Gisela Reindl 877Diese besonderen Raupen fand Gisela Reindl in ihrem Garten in Kümmersbruck." title="" width="410" height="231" loading="lazy" decoding="async" class="img-responsive"/></picture><picture class="mp-picture__picture--alternative"><source srcset="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/23/f79637ee-e883-4fc8-b8ea-c226b2a0d9ae.webp?1790263624" type="image/webp" /><img src="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/23/f79637ee-e883-4fc8-b8ea-c226b2a0d9ae.jpg?1790263624" alt="Bild: Gisela Reindl 878Diese besonderen Raupen fand Gisela Reindl in ihrem Garten in Kümmersbruck." title="" width="120" height="98" loading="lazy" decoding="async" class="img-responsive mp-picture__image--alternative"/></picture></a><div class="properties"><div class=" inner transparent"><span class="property plus" title=""><span class="label">OnetzPlus</span></span></div></div></div><div class="field field-dnt-node-head-meta-teaser meta"><span class="location">Kümmersbruck</span><span class="date">23.09.2026</span></div><div class="field field-dnt-teasser-title-pm field-title"><span class="h2"><a href="/oberpfalz/kuemmersbruck/seltener-gast-garten-oleanderschwaermer-kuemmersbruck-entdeckt-id5510664.html" data-upscore-url="" data-upscore-title="">Seltener Gast im Garten: Oleanderschwärmer in Kümmersbruck entdeckt</a></span></div><div class="field field-dnt-article-teasertext-teaser teaser"><a href="/oberpfalz/kuemmersbruck/seltener-gast-garten-oleanderschwaermer-kuemmersbruck-entdeckt-id5510664.html">âUm Gottes Willen, was ist denn das für ein Viech?â Gemeint hat Gisela 879Reindl zwei Oleanderschwärmer, die sich in ihrem Garten heimisch gemacht 880haben. Warum das Insekt bei uns selten und besonders ist â nachgefragt bei 881einem Experten. 882</a></div> </li> 883 <li class="row" data-mnid-dis="5511335" data-upscore-object-id="5511335"> 884 885 <div class="field field-dnt-primary-article-image-teaser picturewrapper"><a class="picture" href="/oberpfalz/amberg/ambergerin-annika-mutzbauer-glaenzt-fernsehshow-gefragt-gejagd-id5511335.html"><picture><source srcset="https://www.onetz.de/f/ic/ts-s/articlemedia/2026/09/24/37a04de7-fc68-42ee-9125-a37319a0e30c.webp 114w, https://www.onetz.de/f/ic/ts/articlemedia/2026/09/24/37a04de7-fc68-42ee-9125-a37319a0e30c.webp 410w" type="image/webp" sizes="(min-width: 44.6875rem) 410px, 114px" /><img src="https://www.onetz.de/f/ic/ts/articlemedia/2026/09/24/37a04de7-fc68-42ee-9125-a37319a0e30c.jpg" alt="Bild: Uwe Ernst/ARD 886Annika Mutzbauer (rechts) aus Amberg stellte bei "Gefragt - Gejagt" ihr Wissen unter Beweis. Und das mit Erfolg." title="" width="410" height="231" loading="lazy" decoding="async" class="img-responsive"/></picture><picture class="mp-picture__picture--alternative"><source srcset="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/24/37a04de7-fc68-42ee-9125-a37319a0e30c.webp" type="image/webp" /><img src="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/24/37a04de7-fc68-42ee-9125-a37319a0e30c.jpg" alt="Bild: Uwe Ernst/ARD 887Annika Mutzbauer (rechts) aus Amberg stellte bei "Gefragt - Gejagt" ihr Wissen unter Beweis. Und das mit Erfolg." title="" width="120" height="98" loading="lazy" decoding="async" class="img-responsive mp-picture__image--alternative"/></picture></a><div class="properties"><div class=" inner transparent"><span class="property plus" title=""><span class="label">OnetzPlus</span></span></div></div></div><div class="field field-dnt-node-head-meta-teaser meta"><span class="location">Amberg</span><span class="date">24.09.2026</span></div><div class="field field-dnt-teasser-title-pm field-title"><span class="h2"><a href="/oberpfalz/amberg/ambergerin-annika-mutzbauer-glaenzt-fernsehshow-gefragt-gejagd-id5511335.html" data-upscore-url="" data-upscore-title="">Ambergerin Annika Mutzbauer glänzt bei Fernsehshow "Gefragt â Gejagt"</a></span></div><div class="field field-dnt-article-teasertext-teaser teaser"><a href="/oberpfalz/amberg/ambergerin-annika-mutzbauer-glaenzt-fernsehshow-gefragt-gejagd-id5511335.html">Vier Kandidaten, eine Jägerin und viele Fragen. Die 24-jährige Annika 888Mutzbauer stellte sich der Herausforderung und nahm an einer Quizshow teil. 889Am Dienstag wurde die Sendung in der ARD ausgestrahlt. So schlug sich die 890Ambergerin. 891</a></div> </li> 892 <li class="row" data-mnid-dis="5510551" data-upscore-object-id="5510551"> 893 894 <div class="field field-dnt-primary-article-image-teaser picturewrapper"><a class="picture" href="/oberpfalz/trausnitz/ramona-schloegl-philipp-meindl-sagen-selbstgebackene-hoc
894hzeitstorte-geldgeschenke-schokopudding-id5510551.html"><picture><source srcset="https://www.onetz.de/f/ic/ts-s/articlemedia/2026/09/23/609dabe3-3655-42c1-9b49-8d4f70fa936c.webp 114w, https://www.onetz.de/f/ic/ts/articlemedia/2026/09/23/609dabe3-3655-42c1-9b49-8d4f70fa936c.webp 410w" type="image/webp" sizes="(min-width: 44.6875rem) 410px, 114px" /><img src="https://www.onetz.de/f/ic/ts/articlemedia/2026/09/23/609dabe3-3655-42c1-9b49-8d4f70fa936c.jpg" alt="Bild: Nathalie Süà 895Ein schöner Hochzeitstag: Ramona Schlögl und Philipp Meindl haben geheiratet." title="" width="410" height="231" loading="lazy" decoding="async" class="img-responsive"/></picture><picture class="mp-picture__picture--alternative"><source srcset="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/23/609dabe3-3655-42c1-9b49-8d4f70fa936c.webp" type="image/webp" /><img src="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/23/609dabe3-3655-42c1-9b49-8d4f70fa936c.jpg" alt="Bild: Nathalie Süà 896Ein schöner Hochzeitstag: Ramona Schlögl und Philipp Meindl haben geheiratet." title="" width="120" height="98" loading="lazy" decoding="async" class="img-responsive mp-picture__image--alternative"/></picture></a><div class="properties"><div class=" inner transparent"><span class="property plus" title=""><span class="label">OnetzPlus</span></span></div></div></div><div class="field field-dnt-node-head-meta-teaser meta"><span class="location">Trausnitz</span><span class="date">23.09.2026</span></div><div class="field field-dnt-teasser-title-pm field-title"><span class="h2"><a href="/oberpfalz/trausnitz/ramona-schloegl-philipp-meindl-sagen-selbstgebackene-hochzeitstorte-geldgeschenke-schokopudding-id5510551.html" data-upscore-url="" data-upscore-title="">Ramona Schlögl und Philipp Meindl sagen Ja: Selbstgebackene Hochzeitstorte und Geldgeschenke im Schokopudding</a></span></div><div class="field field-dnt-article-teasertext-teaser teaser"><a href="/oberpfalz/trausnitz/ramona-schloegl-philipp-meindl-sagen-selbstgebackene-hochzeitstorte-geldgeschenke-schokopudding-id5510551.html">Zwölf Jahre kennen und lieben sie sich, jetzt ist es auch amtlich: Ramona 897Schlögl und Philipp Meindl heiraten in der Söllitzer Wallfahrtskirche. Mit 898einem groÃen Fest geht es ins Eheglück. 899</a></div> </li> 900 <li class="row" data-mnid-dis="5511283" data-upscore-object-id="5511283"> 901 902 <div class="field field-dnt-primary-article-image-teaser picturewrapper"><a class="picture" href="/oberpfalz/schwandorf/knochenbruch-schubser-90-jaehriger-bewohner-verletzt-pflegerin-schwer-id5511283.html"><picture><source srcset="https://www.onetz.de/f/ic/ts-s/articlemedia/2026/09/24/a3e6cb99-39f5-4256-ba89-1f611e75e8a4.webp 114w, https://www.onetz.de/f/ic/ts/articlemedia/2026/09/24/a3e6cb99-39f5-4256-ba89-1f611e75e8a4.webp 410w" type="image/webp" sizes="(min-width: 44.6875rem) 410px, 114px" /><img src="https://www.onetz.de/f/ic/ts/articlemedia/2026/09/24/a3e6cb99-39f5-4256-ba89-1f611e75e8a4.jpg" alt="Symbolbild: Boris Roessler/dpa 903In einem Pflegeheim in Schwandorf hat sich eine 60-jährige Pflegerin nach einem Schubser schwer verletzt." title="" width="410" height="231" loading="lazy" decoding="async" class="img-responsive"/></picture><picture class="mp-picture__picture--alternative"><source srcset="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/24/a3e6cb99-39f5-4256-ba89-1f611e75e8a4.webp" type="image/webp" /><img src="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/24/a3e6cb99-39f5-4256-ba89-1f611e75e8a4.jpg" alt="Symbolbild: Boris Roessler/dpa 904In einem Pflegeheim in Schwandorf hat sich eine 60-jährige Pflegerin nach einem Schubser schwer verletzt." title="" width="120" height="98" loading="lazy" decoding="async" class="img-responsive mp-picture__image--alternative"/></picture></a></div><div class="field field-dnt-node-head-meta-teaser meta"><span class="location">Schwandorf</span><span class="date">24.09.2026</span></div><div class="field field-dnt-teasser-title-pm field-title"><span class="h2"><a href="/oberpfalz/schwandorf/knochenbruch-schubser-90-jaehriger-bewohner-verletzt-pflegerin-schwer-id5511283.html" data-upscore-url="" data-upscore-title="">Knochenbruch nach Schubser: 90-jähriger Bewohner verletzt Pflegerin schwer</a></span></div><div class="field field-dnt-article-teasertext-teaser teaser"><a href="/oberpfalz/schwandorf/knochenbruch-schubser-90-jaehriger-bewohner-verletzt-pflegerin-schwer-id5511283.html">Eine Pflegerin hat sich in einem Schwandorfer Pflegeheim schwer verletzt, 905nachdem sie ein Bewohner geschubst hatte. Der 90-Jährige kommt in eine 906Fachklinik. 907</a></div> </li> 908 <li class="row" data-mnid-dis="5511447" data-upscore-object-id="5511447"> 909 910 <div class="field field-dnt-primary-article-image-teaser picturewrapper"><a class="picture" href="/oberpfalz/amberg/leben-zerstoert-25-jaehrige-sagt-drogenprozess-amberg-gegen-ex-partner-id5511447.html"><picture><source srcset="https://www.onetz.de/f/ic/ts-s/articlemedia/2026/09/24/35c0be56-6278-4c37-8a07-680e4cef40f5.webp?1790262958 114w, https://www.onetz.de/f/ic/ts/articlemedia/2026/09/24/35c0be56-6278-4c37-8a07-680e4cef40f5.webp?1790262958 410w" type="image/webp" sizes="(min-width: 44.6875rem) 410px, 114px" /><img src="https://www.onetz.de/f/ic/ts/articlemedia/2026/09/24/35c0be56-6278-4c37-8a07-680e4cef40f5.jpg?1790262958" alt="Bild: Kathrin Halbhuber 911Seit Mittwoch muss sich ein mutmaÃlicher Drogendealer vor dem Landgericht Amberg verantworten." title="" width="410" height="231" loading="lazy" decoding="async" class="img-responsive"/></picture><picture class="mp-picture__picture--alternative"><source srcset="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/24/35c0be56-6278-4c37-8a07-680e4cef40f5.webp?1790262958" type="image/webp" /><img src="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/24/35c0be56-6278-4c37-8a07-680e4cef40f5.jpg?1790262958" alt="Bild: Kathrin Halbhuber 912Seit Mittwoch muss sich ein mutmaÃlicher Drogendealer vor dem Landgericht Amberg verantworten." title="" width="120" height="98" loading="lazy" decoding="async" class="img-responsive mp-picture__image--alternative"/></picture></a><div class="properties"><div class=" inner transparent"><span class="property plus" title=""><span class="label">OnetzPlus</span></span></div></div></div><div class="field field-dnt-node-head-meta-teaser meta"><span class="location">Amberg</span><span class="date">24.09.2026</span></div><div class="field field-dnt-teasser-title-pm field-title"><span class="h2"><a href="/oberpfalz/amberg/leben-zerstoert-25-jaehrige-sagt-drogenprozess-amberg-gegen-ex-partner-id5511447.html" data-upscore-url="" data-upscore-title="">"Mein Leben zerstört": 25-Jährige sagt bei Drogenprozess in Amberg gegen Ex-Partner aus</a></span></div><div class="field field-dnt-article-teasertext-teaser teaser"><a href="/oberpfalz/amberg/leben-zerstoert-25-jaehrige-sagt-drogenprozess-amberg-gegen-ex-partner-id5511447.html">Er soll nicht nur mit Crystal Meth gedealt, sondern auch gewaltsam 913Drogenschulden eingetrieben haben. Ein 29-Jähriger muss sich deswegen 914aktuell vor dem Landgericht Amberg verantworten. Seine Ex-Partnerin belastet 915ihn beim Auftakt schwer. 916</a></div> </li> 917 <li class="row last" data-mnid-dis="5511971" data-upscore-object-id="5511971"> 918 919 <div class="field field-dnt-primary-article-image-teaser picturewrapper"><a class="picture" href="/oberpfalz/luhe-wildenau/welche-auswirkungen-h
919at-hoehbauer-insolvenz-kunden-id5511971.html"><picture><source srcset="https://www.onetz.de/f/ic/ts-s/articlemedia/2026/09/24/b354fbd4-0a05-41c7-b61b-a4597f2750b8.webp?1790263868 114w, https://www.onetz.de/f/ic/ts/articlemedia/2026/09/24/b354fbd4-0a05-41c7-b61b-a4597f2750b8.webp?1790263868 410w" type="image/webp" sizes="(min-width: 44.6875rem) 410px, 114px" /><img src="https://www.onetz.de/f/ic/ts/articlemedia/2026/09/24/b354fbd4-0a05-41c7-b61b-a4597f2750b8.jpg?1790263868" alt="Bild: Gabi Schönberger 920Was bedeutet die Höhbauer-Insolvenz für Kunden?" title="" width="410" height="231" loading="lazy" decoding="async" class="img-responsive"/></picture><picture class="mp-picture__picture--alternative"><source srcset="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/24/b354fbd4-0a05-41c7-b61b-a4597f2750b8.webp?1790263766" type="image/webp" /><img src="https://www.onetz.de/f/ic/ts-s-43/articlemedia/2026/09/24/b354fbd4-0a05-41c7-b61b-a4597f2750b8.jpg?1790263766" alt="Bild: Gabi Schönberger 921Was bedeutet die Höhbauer-Insolvenz für Kunden?" title="" width="120" height="98" loading="lazy" decoding="async" class="img-responsive mp-picture__image--alternative"/></picture></a><div class="properties"><div class=" inner transparent"><span class="property plus" title=""><span class="label">OnetzPlus</span></span></div></div></div><div class="field field-dnt-node-head-meta-teaser meta"><span class="location">Luhe-Wildenau</span><span class="date">24.09.2026</span></div><div class="field field-dnt-teasser-title-pm field-title"><span class="h2"><a href="/oberpfalz/luhe-wildenau/welche-auswirkungen-hat-hoehbauer-insolvenz-kunden-id5511971.html" data-upscore-url="" data-upscore-title="">Welche Auswirkungen hat die Höhbauer-Insolvenz auf Kunden?</a></span></div><div class="field field-dnt-article-teasertext-teaser teaser"><a href="/oberpfalz/luhe-wildenau/welche-auswirkungen-hat-hoehbauer-insolvenz-kunden-id5511971.html">Die Höhbauer GmbH hat einen Insolvenzantrag gestellt. Viele Kunden stellen 922sich nun Fragen: Was bedeutet das für mich? Was ist mit dem 923Gewährleistungsanspruch? Was ist mit Vorauszahlungen? 924</a></div> </li> 925 </ul> 926 </div> 927 928 929 930 931 932 933</div><!-- /.view --> 934 </div> 935 936 937 938 </div> 939<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-dnt-traffective-banner" > 940 941 942 943 <div class="pane-content"> 944 945 <div id="traffective-ad-Interstitial" style="display: none;" class="Interstitial childmargin" aria-hidden="true"></div> </div> 946 947 948 949 </div> 950<div class="panel-region-separator"></div>
950<script async src="https://ins.oberpfalzmedien.de/service/gnikcart/public/gnikcart-script.js?element-id=5aa7f143-6966-4033-a046-d7eafda67893"></script>
950<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node dm-nobg" > 951 952 953 954 <div class="pane-content"> 955 956 <article id="node-4257514" class="node node-type-thing build-mode-full clearfix "> 957 958 959 960 961 <div class="content"> 962 <!-- 963CSS-SVG-Animation, die angezeigt wird, während Prozesse geladen werden. Normalerweise während der Checkout-Prozess nach Login oder Registrierung fortgesetzt wird. 964--> 965<div class="dnt_anim_overlay" id="dnt_anim_loader" style="display:none;"> 966<div class="dnt_anim_loader"><svg class="spinner" data-name="Ebene 1" height="65px" id="Ebene_1" viewbox="0 0 65 65" width="65px" xmlns="http://www.w3.org/2000/svg"> <defs> </defs> <path class="cls-1" d="m65,32.5C65,14.55,50.45,0,32.5,0S0,14.55,0,32.5s14.55,32.5,32.5,32.5,32.5-14.55,32.5-32.5m-14.45,7.03c-1.51,4.01-4.22,7.21-7.56,9.37l-14.77,10.14v-7.52c-.84-.19-1.67-.42-2.5-.73-9.97-3.75-15.01-14.86-11.26-24.83,3.75-9.97,14.86-15.01,24.83-11.26,9.97,3.75,15.01,14.86,11.26,24.83"></path> </svg></div> 967</div>
968<script> 969/* 970Die Dokumentation der Funktionen ist im entsprechenden Confluence-Eintrag zu finden. 971*/ 972 973if(navigator.userAgent.toLowerCase().indexOf("fbav") > -1 || navigator.userAgent.toLowerCase().indexOf("fban") > -1 || navigator.userAgent.toLowerCase().indexOf("fb_iab") > -1 ||Â navigator.userAgent.toLowerCase().indexOf("instagram") > -1) 974 { 975 console.log("%c4257514","background-color:darkolivegreen; color:white;","Facebook or Instagram in app browser detected."); 976 } 977 978else 979 { 980 if (typeof localStorage.dntCoParams != "undefined" && document.referrer != "" && document.referrer.toLowerCase().indexOf("onetz.de") > -1) 981 { 982 console.log("%c4257514","background-color:darkolivegreen; color:white;","Local Storage params object AND page referrer found. Showing busy animation."); 983 document.getElementById("dnt_anim_loader").style.display="block"; 984 } 985 986 if (typeof localStorage.dntCoParams != "undefined" && (document.referrer == "" || document.referrer.toLowerCase().indexOf("onetz.de") < 0)) 987 { 988 localStorage.removeItem("dntCoParams"); 989 console.log("%c4257514","background-color:darkolivegreen; color:white;","Local storage params object detected but no page referrer found. Removing local storage object."); 990 } 991 } 992 993</script>
993 994
995<script> 996document.addEventListener("DOMContentLoaded", function () { 997 setTimeout(()=>{ 998 console.log("DOMContentLoaded"); 999 // iOS 1000 window.webkit?.messageHandlers?.pageStatus?.postMessage("content_ready"); 1001 // Android 1002 const iface = window.appInterface || window.appInterfaceAndroid; 1003 if (iface) { iface.event("content_ready"); } 1004 }, 750) 1005}); 1006</script>
1006 </div> 1007 1008 1009</article> <!-- /.node --> 1010 </div> 1011 1012 1013 1014 </div> 1015<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node dm-nobg" > 1016 1017 1018 1019 <div class="pane-content"> 1020 1021 <article id="node-4287610" class="node node-type-thing build-mode-full clearfix "> 1022 1023 1024 1025 1026 <div class="content"> 1027 <!-- 1028Stellt den Hasso-Login für den Login/Registrierung innerhalb des Kaufprozesses zur Verfügung. 1029--> 1030<div class="om_pw_overlay" id="om_pw_login" style="display:none!important;"> 1031<div class="om_pw_overlay_content"> 1032<div class="om_pw_overlay_head"><img src="https://media.onetz.de/piano_static/onetzplus rot.png" style="padding: 40px 0 25px; margin: 70px auto 0 auto; width: 100px;" /> <span id="om_pw_login_headline"><span id="om_pw_login_headline_static">Zum Fortsetzen bitte</span><br /> 1033<span class="om_pw_login_headline_heavy" id="om_headline_dynamic">E-Mail eingeben</span></span></div> 1034 1035<div><iframe data-mimas-nosb="" frameborder="0" id="om_pw_inpage_login_iframe" scrolling="no" src="https://sso.onetz.de/auth/authorize?ajaxMode=1&client_id=nativemedia&responsetype=event&domain=https://www.onetz.de&theme=bright"></iframe></div> 1036 1037<div id="om_pw_login_back_btn"><button onclick="om_pw_hide_login()"><svg height="40" style="transform: rotate(180deg);" viewbox="0 -960 960 960" width="40" xmlns="http://www.w3.org/2000/svg"><path d="M480-352.667 607.333-480 480-607.333 456.667-584l87.077 87.077H343.077v33.846h200.667L456.667-376 480-352.667ZM480.134-120q-74.519 0-139.999-28.339-65.481-28.34-114.442-77.255-48.961-48.915-77.327-114.335Q120-405.348 120-479.866q0-74.673 28.339-140.41 28.34-65.737 77.255-114.365 48.915-48.627 114.335-76.993Q405.348-840 479.866-840q74.673 0 140.41 28.339 65.737 28.34 114.365 76.922 48.627 48.582 76.993 114.257Q840-554.806 840-480.134q0 74.519-28.339 139.999-28.34 65.481-76.922 114.442-48.582 48.961-114.257 77.327Q554.806-120 480.134-120ZM480-153.846q136.256 0 231.205-95.026Q806.154-343.897 806.154-480q0-136.256-94.949-231.205Q616.256-806.154 480-806.154q-136.103 0-231.128 94.949Q153.846-616.256 153.846-480q0 136.103 95.026 231.128Q343.897-153.846 480-153.846ZM480-480Z"></path></svg></button></div> 1038 1039<div id="om_pw_logged_in_msg"> 1040<p style="text-align:center;">Sie sind bereits eingeloggt.<br /> 1041<br /> 1042Um diesen Artikel lesen zu können, benötigen Sie ein OnetzPlus- oder E-Paper-Abo.</p> 1043 1044<button onclick="om_pw_hide_login()"><svg height="40" style="transform: rotate(180deg);" viewbox="0 -960 960 960" width="40" xmlns="http://www.w3.org/2000/svg"><path d="M480-352.667 607.333-480 480-607.333 456.667-584l87.077 87.077H343.077v33.846h200.667L456.667-376 480-352.667ZM480.134-120q-74.519 0-139.999-28.339-65.481-28.34-114.442-77.255-48.961-48.915-77.327-114.335Q120-405.348 120-479.866q0-74.673 28.339-140.41 28.34-65.737 77.255-114.365 48.915-48.627 114.335-76.993Q405.348-840 479.866-840q74.673 0 140.41 28.339 65.737 28.34 114.365 76.922 48.627 48.582 76.993 114.257Q840-554.806 840-480.134q0 74.519-28.339 139.999-28.34 65.481-76.922 114.442-48.582 48.961-114.257 77.327Q554.806-120 480.134-120ZM480-153.846q136.256 0 231.205-95.026Q806.154-343.897 806.154-480q0-136.256-94.949-231.205Q616.256-806.154 480-806.154q-136.103 0-231.128 94.949Q153.846-616.256 153.846-480q0 136.103 95.026 231.128Q343.897-153.846 480-153.846ZM480-480Z"></path></svg></button></div> 1045</div> 1046</div>
1047<script> 1048 1049// ***************************************** 1050// Die Dokumentation der Funktionen ist im entsprechenden Confluence-Eintrag zu finden. 1051// ***************************************** 1052window.addEventListener('message', function (event) { 1053 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "authorize" && event.data.code == 2200) { 1054 console.log("%c4287610","background-color:darkolivegreen; color:white;", 1055 "Received "+ event.data.eventNature +" event. Received code: " + event.data.code +" Setting text: Passwort eingeben." ); 1056 document.getElementById("om_headline_dynamic").innerHTML="Passwort eingeben"; 1057 } 1058 1059 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "ssoAjaxBackLinkCalled") { 1060 console.log("%c4287610","background-color:darkolivegreen; color:white;", 1061 "Received "+ event.data.eventNature +" event. Setting text: E-Mail eingeben." ); 1062 document.getElementById("om_headline_dynamic").innerHTML="E-Mail eingeben"; 1063 } 1064 1065 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "ssoAjaxPwLinkCalled") { 1066 console.log("%c4287610","background-color:darkolivegreen; color:white;", 1067 "Received "+ event.data.eventNature +" event. Setting text: E-Mail eingeben." ); 1068 document.getElementById("om_headline_dynamic").innerHTML="E-Mail eingeben"; 1069 } 1070 1071 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "authorize" && event.data.code == 2000) { 1072 document.getElementById("om_pw_login_headline_static").style.display = "none"; 1073 document.getElementById("om_headline_dynamic").innerHTML="Anmeldung erfolgreich!"; 1074 } 1075 1076 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "ssoAjaxViewLoaded") { 1077 if (event.data.formId == "register") { 1078 document.getElementById("om_headline_dynamic").innerHTML="Registrierung abschlieÃen"; 1079 } 1080 else if (event.data.formId == "authorize") { 1081 document.getElementById("om_headline_dynamic").innerHTML="E-Mail eingeben"; 1082 } 1083 1084 var frame_height = 0; 1085 if (event.data.formHeight < 100) { 1086 event.data.formHeight = 162; 1087 } 1088 1089 if (window.innerHeight <= 800) { 1090 frame_height = event.data.formHeight + 180; 1091 } 1092 else if (window.innerHeight > 800) { 1093 frame_height = event.data.formHeight + 80; 1094 } 1095 var frame = document.getElementById("om_pw_inpage_login_iframe"); 1096 frame.style.height = frame_height + 'px'; 1097 1098 console.log("%c4287610", "background-color:darkolivegreen; color:white;", 1099 "Received ssoAjaxViewLoaded event. Changing iframe height to match form - " + event.data.formId + " - with height of " + frame_height + "px."); 1100 } 1101}); 1102 1103function create_login_evt_lstnr_pw() { 1104 window.addEventListener('message', function(event) { 1105 if (event.origin === "https://sso.onetz.de") { 1106 var paywall_art_id = tp.customVariables.destPath.slice(5); 1107 if(event.data.code === 2000) { 1108 if (typeof sessionStorage.mtm_login_event == "undefined" || sessionStorage.mtm_login_event != "true") { 1109 let paywall_success_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 1110 paywall_success_event.trackEvent("Paywall Events", "Login", paywall_art_id, 1); 1111 console.log("%c4287610","background-color:darkolivegreen; color:white;","SSO event received. Successful login on paywall tracked."); 1112 sessionStorage.setItem("mtm_login_event","true"); 1113 console.log("%c4287610","background-color:darkolivegreen; color:white;","Session login variable set."); 1114 } 1115 else if (typeof sessionStorage.mtm_login_event != "undefined" && sessionStorage.mtm_login_event != "true") { 1116 console.log("%c4287610","background-color:darkolivegreen; color:white;","Session login variable wrong value."); 1117 } 1118 else if (typeof sessionStorage.mtm_login_event != "undefined" && sessionStorage.mtm_login_event == "true") { 1119 console.log("%c4287610","background-color:darkolivegreen; color:white;","Login tracking event already sent."); 1120 } 1121 } 1122 else if (event.data.code === 5000) { 1123 if (typeof sessionStorage.mtm_reg_event == "undefined" || sessionStorage.mtm_reg_event != "true") { 1124 let paywall_success_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 1125 paywall_success_event.trackEvent("Paywall Events", "Registration", paywall_art_id, 1); 1126 console.log("%c4287610","background-color:darkolivegreen; color:white;", 1127 "SSO event received. Successful registration on paywall tracked."); 1128 sessionStorage.setItem("mtm_reg_event","true"); 1129 console.log("%c4287610","background-color:darkolivegreen; color:white;","Session reg variable set."); 1130 } 1131 else if (typeof window.sessionStorage.mtm_reg_event != "undefined" && window.sessionStorage.mtm_reg_event != "true") { 1132 console.log("%c4287610","background-color:darkolivegreen; color:white;","Session reg variable wrong value."); 1133 } 1134 else if (typeof window.sessionStorage.mtm_reg_event != "undefined" && window.sessionStorage.mtm_reg_event == "true") { 1135 console.log("%c4287610","background-color:darkolivegreen; color:white;","Registration tracking event already sent."); 1136 } 1137 } 1138 else { 1139 console.log("%c4287610","background-color:darkolivegreen; color:white;","SSO event received. But: No Login. No registration."); 1140 } 1141 } 1142 }, false); 1143 console.log("%c4287610","background-color:darkolivegreen; color:white;","Paywall event listener ready."); 1144} 1145
1146function om_pw_show_login(){ 1147 console.log("%c4287610","background-color:darkolivegreen; color:white;","Function om_pw_show_login called."); 1148 1149 let paywall_art_id = tp.customVariables.destPath.slice(5); 1150 let show_paywall_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 1151 show_paywall_event.trackEvent("Paywall Events", "Show paywall login", paywall_art_id, 1); 1152 console.log("%c4287610","background-color:darkolivegreen; color:white;","Show paywall login form event tracked."); 1153 document.getElementById("om_pw_login").style.display="block"; 1154 1155 if (typeof sessionStorage.mtm_login_event != "undefined") { 1156 sessionStorage.removeItem("mtm_login_event") 1157 console.log("%c4287610","background-color:darkolivegreen; color:white;","Deleting login session variable."); 1158 } 1159 if (typeof sessionStorage.mtm_reg_event != "undefined") { 1160 sessionStorage.removeItem("mtm_reg_event") 1161 console.log("%c4287610","background-color:darkolivegreen; color:white;","Deleting reg session variable."); 1162 } 1163 console.log("%c4287610","background-color:darkolivegreen; color:white;","Initalizing paywall event listener."); 1164 create_login_evt_lstnr_pw(); 1165} 1166 1167function om_pw_hide_login(){ 1168 document.getElementById("om_pw_login").style.display="none"; 1169 console.log("%c4287610","background-color:darkolivegreen; color:white;","Function om_pw_hide_login called."); 1170 dnt_piano_remove_checkout_params(); 1171} 1172 1173if (document.getElementsByTagName("body")[0].classList.contains("logged-in") || (sessionStorage.encUID && sessionStorage.encUID != "")){ 1174 document.getElementById("om_pw_inpage_login_iframe").src=""; 1175 document.getElementById("om_pw_inpage_login_iframe").style.display="none"; 1176 document.getElementById("om_pw_login_headline").style.display="none"; 1177 document.getElementById("om_pw_login_back_btn").style.display="none"; 1178 document.getElementById("om_pw_logged_in_msg").style.display="block"; 1179 console.log("%c4287610","background-color:darkolivegreen; color:white;", 1180 "Already logged in. Removing paywall iframe-src-attribute to prevent page from refreshing."); 1181} 1182else{ 1183 console.log("%c4287610","background-color:darkolivegreen; color:white;","Not logged in. Paywall login overlay screen ready."); 1184} 1185 1186</script>
1186 </div> 1187 1188 1189</article> <!-- /.node --> 1190 </div> 1191 1192 1193 1194 </div> 1195<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node dm-nobg" > 1196 1197 1198 1199 <div class="pane-content"> 1200 1201 <article id="node-4331613" class="node node-type-thing build-mode-full clearfix "> 1202 1203 1204 1205 1206 <div class="content"> 1207 <!-- 1208Stellt den Hasso-Login für den Login/Registrierung als Registrierungsschranke zur Verfügung. 1209--> 1210<div class="om_rw_overlay" id="om_rw_login" style="display:none;"> 1211<div class="om_rw_overlay_content"><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNDUuMDYyIDk0LjgwNyIgaGVpZ2h0PSIxMDEuMTI4IiB3aWR0aD0iMzY4LjA2NiI+PHBhdGggZD0iTTI4OS43NSAyNS4zMDVWNDIuNzNoMjUuMTFsLTI4Ljc5MyA0OS41M2g1Ny40N1Y3NC44MzhoLTI3LjMwNGwyOC44My00OS41MzNIMjg5Ljc1em0tNDYuNzk0IDE3LjQyNGg2LjYxdjIyLjg3M2MwIDEuNzgzLS4wMTQgMy42MyAwIDUuMjQyLjEwMyAxMC43MDcgNC42NzcgMTkuMTgyIDE0LjUwNiAyMi4wMjcgMi4wMzUuNjI1IDMuMTk3LjU4OCA0LjEwNS42NjggMy40My4zMDUgOC41NTItMS4yNzggOC41NTItMS4yNzhzNi4yNi0xMS4wODcgMTAuMTUtMTcuNDI0Yy0yLjMxIDAtMTAuNzEuMDE1LTEyLjg3LS4wMDItNC42NjgtLjAzNC02LjA1Ni0xLjMzLTYuMDY1LTYuMDAyVjQyLjcyOWgxNC4wODhWMjUuMzA1aC0xNC4wODhWMi4xMWwtMTguMzc4IDguNzMyLS4wMDEgMTQuNDYzLTYuNjEuMDA0TTE5NC4wMDUgNTAuNmMxLjE3NC01LjgyNyA1LjQ3My05Ljc1NyAxMi41MS05Ljc1NyA3LjI5OCAwIDExLjcyOSAzLjM5IDEyLjc3MSA5Ljc1OGgtMjUuMjh6bTQ1LjQ4IDguMjVjMC0yMC4wNC0xMi42NC0zNC41MDgtMzIuOTctMzQuNTA4LTIwLjMyOSAwLTMyLjgzNyAxNC43MzktMzIuODM3IDM0LjUwOCAwIDE5Ljc3IDEyLjkgMzQuMzczIDM0LjAxMSAzNC4zNzMgMTQuNzI0IDAgMjIuNjc1LTUuMTM4IDI3Ljg4Ny0xMi40NGwtMTIuNzYtMTIuMTkzYy0zLjIgNS42NzctOC43MzUgOC41My0xNC45ODIgOC4yNjItNi4zODEtLjI3Mi0xNC4xOTUtNS40MzctMTQuMjItMTMuNTRoNDUuODcxVjU4Ljg1em0tNzQuOS0xNi45MzVjLTIuNzYtOC4yNy0xMC4yMzItMTcuNTc1LTMxLjE2Ny0xNy41NzUtMjQuMjE3IDAtMzAuODk0IDEyLjUxMi0zMC44OTQgMTIuNTEydjU1LjI1aDE5LjY1MVY0Ni4zODFzMy4zMDgtNC42NDQgMTEuNDY2LTQuNzY1YzguMDcyLS4xMTcgMTIuNDggMy4zNjUgMTIuNDggOC45OTVsLS4wMDUgNDEuNDgxaDE5Ljg0MlY0OS41NGMwLTIuODA0LS42LTUuMzA2LTEuMzczLTcuNjI1IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTQ3LjQwNCAwQzIxLjIyMyAwIDAgMjEuMjI3IDAgNDcuNDA0YzAgMjYuMTgzIDIxLjIyMyA0Ny40MDMgNDcuNDA0IDQ3LjQwMyAyNi4xODMgMCA0Ny40MDctMjEuMjIgNDcuNDA3LTQ3LjQwM0M5NC44MSAyMS4yMjcgNzMuNTg3IDAgNDcuNDA0IDB6bS4yNDQgMTguNzQ4YzMuMjExLjAyNyA2LjQ3LjYxMSA5LjY1IDEuODA3IDE0LjU0IDUuNDYzIDIxLjg5NiAyMS42OCAxNi40MyAzNi4yMTYtMi4xOTggNS44NTMtNi4xNTcgMTAuNTEyLTExLjAyNyAxMy42NjhMNDEuMTU0IDg1LjIzNmwtLjAxLTEwLjk3MmMtMS4yMTctLjI4LTIuNDMzLS42MTItMy42MzQtMS4wNjMtMTQuNTM4LTUuNDY1LTIxLjg5My0yMS42OC0xNi40MjgtMzYuMjE5IDQuMjY4LTExLjM1NiAxNS4xLTE4LjMzMiAyNi41NjYtMTguMjM0eiIgZmlsbD0iIzk0ZDEzMyIvPjwvc3ZnPg==" style="padding: 40px 0 20px; margin: 70px auto 5px auto; width: 100px; background-color:transparent;" /> 1212<div class="om_rw_overlay_head"><span id="om_rw_login_headline"><span class="om_rw_login_headline_heavy" id="om_rw_login_headline_static">Zum Weiterlesen</span><br /> 1213<span class="om_rw_login_headline_heavy" id="om_rw_login_headline_dynamic">einloggen oder kostenlos registrieren</span></span></div> 1214 1215 1216<p><iframe data-mimas-nosb="" frameborder="0" id="om_rw_inpage_login_iframe" scrolling="no" src="https://sso.onetz.de/auth/authorize?ajaxMode=1&client_id=nativemedia&responsetype=event&domain=https://www.onetz.de&theme=bright"></iframe></p> 1217 1218 1219<p style="text-align:center;"><a href="https://www.onetz.de" style="color:#002850;" target="_self">Zur Startseite</a></p> 1220 1221 1222<div id="om_rw_login_back_btn" style="display:none!important;"><button onclick="om_rw_hide_login()">Ã</button></div> 1223 1224<div id="om_rw_logged_in_msg"> 1225<p style="text-align:center;">Sie sind bereits eingeloggt!</p> 1226 1227<button onclick="om_rw_hide_login()">Ã</button></div> 1228</div> 1229</div>
1230<script> 1231 1232// ***************************************** 1233// Die Dokumentation der Funktionen ist im entsprechenden Confluence-Eintrag zu finden. 1234// ***************************************** 1235window.addEventListener('message', function (event) { 1236 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "authorize" && event.data.code == 2200) { 1237 console.log("%c4331613","background-color:darkolivegreen; color:white;", 1238 "Received "+ event.data.eventNature +" event. Received code: " + event.data.code +" Setting text: Passwort eingeben." ); 1239 document.getElementById("om_rw_login_headline_dynamic").innerHTML="Passwort eingeben"; 1240 } 1241 1242 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "ssoAjaxBackLinkCalled") { 1243 console.log("%c4331613","background-color:darkolivegreen; color:white;", 1244 "Received "+ event.data.eventNature +" event. Setting text: E-Mail eingeben." ); 1245 document.getElementById("om_rw_login_headline_dynamic").innerHTML="E-Mail eingeben"; 1246 } 1247 1248 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "ssoAjaxPwLinkCalled") { 1249 console.log("%c4331613","background-color:darkolivegreen; color:white;", 1250 "Received "+ event.data.eventNature +" event. Setting text: E-Mail eingeben." ); 1251 document.getElementById("om_headline_dynamic").innerHTML="E-Mail eingeben"; 1252 } 1253 1254 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "authorize" && event.data.code == 2000) { 1255 document.getElementById("om_pw_login_headline_static").style.display = "none"; 1256 document.getElementById("om_rw_login_headline_dynamic").innerHTML="Anmeldung erfolgreich!"; 1257 } 1258 1259 if (event.origin === "https://sso.onetz.de" && event.data.eventNature == "ssoAjaxViewLoaded") { 1260 if (event.data.formId == "register") { 1261 document.getElementById("om_rw_login_headline_dynamic").innerHTML="Registrierung abschlieÃen"; 1262 } 1263 else if (event.data.formId == "authorize") { 1264 document.getElementById("om_rw_login_headline_dynamic").innerHTML="E-Mail eingeben"; 1265 } 1266 1267 var frame_height = 0; 1268 if (event.data.formHeight < 100) { 1269 event.data.formHeight = 162; 1270 } 1271 1272 if (window.innerHeight <= 800) { 1273 frame_height = event.data.formHeight + 180; 1274 } 1275 else if (window.innerHeight > 800) { 1276 frame_height = event.data.formHeight + 80; 1277 } 1278 var frame = document.getElementById("om_rw_inpage_login_iframe"); 1279 frame.style.height = frame_height + 'px'; 1280 1281 console.log("%c4331613", "background-color:darkolivegreen; color:white;", 1282 "Received ssoAjaxViewLoaded event. Changing iframe height to match form - " + event.data.formId + " - with height of " + frame_height + "px."); 1283 } 1284}); 1285 1286function create_login_evt_lstnr_rw() 1287 { 1288 window.addEventListener('message', function(event) 1289 { 1290 if (event.origin === "https://sso.onetz.de") 1291 { 1292 var regwall_art_id = tp.customVariables.destPath.slice(5); 1293 if(event.data.code === 2000) 1294 { 1295 if (typeof window.sessionStorage.rw_mtm_login_event == "undefined" || window.sessionStorage.rw_mtm_login_event != "true") 1296 { 1297 let regwall_success_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 1298 regwall_success_event.trackEvent("Regwall Events", "Login", regwall_art_id, 1); 1299 console.log("%c4331613","background-color:darkolivegreen; color:white;","SSO event received. Successful login on regwall tracked."); 1300 window.sessionStorage.setItem("rw_mtm_login_event","true"); 1301 console.log("%c4331613","background-color:darkolivegreen; color:white;","Session login variable set."); 1302 } 1303 else if (typeof window.sessionStorage.rw_mtm_login_event != "undefined" && window.sessionStorage.rw_mtm_login_event != "true") 1304 { 1305 console.log("%c4331613","background-color:darkolivegreen; color:white;","Session login variable wrong value."); 1306 } 1307 else if (typeof window.sessionStorage.rw_mtm_login_event != "undefined" && window.sessionStorage.rw_mtm_login_event == "true") 1308 { 1309 console.log("%c4331613","background-color:darkolivegreen; color:white;","Login tracking event already sent."); 1310 } 1311 } 1312 else if (event.data.code === 5000) 1313 { 1314 if (typeof window.sessionStorage.rw_mtm_reg_event == "undefined" || window.sessionStorage.rw_mtm_reg_event != "true") 1315 { 1316 let regwall_success_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 1317 regwall_success_event.trackEvent("Regwall Events", "Registration", regwall_art_id, 1); 1318 console.log("%c4331613","background-color:darkolivegreen; color:white;","SSO event received. Successful registration on regwall tracked."); 1319 window.sessionStorage.setItem("rw_mtm_reg_event","true"); 1320 console.log("%c4331613","background-color:darkolivegreen; color:white;","Session reg variable set."); 1321 } 1322 else if (typeof window.sessionStorage.rw_mtm_reg_event != "undefined" && window.sessionStorage.rw_mtm_reg_event != "true") 1323 { 1324 console.log("%c4331613","background-color:darkolivegreen; color:white;","Session reg variable wrong value."); 1325 } 1326 else if (typeof window.sessionStorage.rw_mtm_reg_event != "undefined" && window.sessionStorage.rw_mtm_reg_event == "true") 1327 { 1328 console.log("%c4331613","background-color:darkolivegreen; color:white;","Registration tracking event already sent."); 1329 } 1330 } 1331 else 1332 { 1333 console.log("%c4331613","background-color:darkolivegreen; color:white;","SSO event received. But: No Login. No registration."); 1334 } 1335 } 1336 }, false); 1337 console.log("%c4331613","background-color:darkolivegreen; color:white;","Regwall event listener ready."); 1338 } 1339 1340function om_rw_show_login() 1341 { 1342 console.log("%c4331613","background-color:darkolivegreen; color:white;","Function om_rw_show_login called."); 1343 1344 let regwall_art_id = tp.customVariables.destPath.slice(5); 1345 let show_regwall_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 1346 show_regwall_event.trackEvent("Regwall Events", "Show regwall", regwall_art_id, 1); 1347 console.log("%c4331613","background-color:darkolivegreen; color:white;","Show regwall event tracked."); 1348 1349 document.getElementById("om_rw_login").style.display="block"; 1350 1351 if (typeof window.sessionStorage.rw_mtm_login_event != "undefined") 1352 { 1353 window.sessionStorage.removeItem("rw_mtm_login_event") 1354 console.log("%c4331613","background-color:darkolivegreen; color:white;","Deleting login session variable."); 1355 } 1356 if (typeof window.sessionStorage.rw_mtm_reg_event != "undefined") 1357 { 1358 window.sessionStorage.removeItem("rw_mtm_reg_event") 1359 console.log("%c4331613","background-color:darkolivegreen; color:white;","Deleting reg session variable."); 1360 } 1361 console.log("%c4331613","background-color:darkolivegreen; color:white;","Initalizing regwall event listener."); 1362 create_login_evt_lstnr_rw(); 1363 } 1364 1365function om_rw_hide_login() 1366 { 1367 document.getElementById("om_rw_login").style.display="none"; 1368 console.log("%c4331613","background-color:darkolivegreen; color:white;","Function om_rw_hide_login called."); 1369 //dnt_piano_remove_checkout_params(); 1370 //location.reload(); 1371 //om_unblur_content(); 1372 } 1373 1374 1375if (document.getElementsByTagName("body")[0].classList.contains("logged-in")) 1376 { 1377 document.getElementById("om_rw_inpage_login_iframe").src=""; 1378 document.getElementById("om_rw_inpage_login_iframe").style.display="none"; 1379 document.getElementById("om_rw_login_headline").style.display="none"; 1380 document.getElementById("om_rw_login_back_btn").style.display="none"; 1381 document.getElementById("om_rw_logged_in_msg").style.display="block"; 1382 console.log("%c4331613","background-color:darkolivegreen; color:white;","Already logged in. Removing regwall iframe-src-attribute to prevent page from refreshing."); 1383 } 1384else 1385 { 1386 console.log("%c4331613","background-color:darkolivegreen; color:white;","Not logged in. Regwall login overlay screen ready. new"); 1387 } 1388</script>
1388 </div> 1389 1390 1391</article> <!-- /.node --> 1392 </div> 1393 1394 1395 1396 </div> 1397<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node dm-nobg" > 1398 1399 1400 1401 <div class="pane-content"> 1402 1403 <article id="node-4295949" class="node node-type-thing build-mode-full clearfix "> 1404 1405 1406 1407 1408 <div class="content"> 1409
1409<script data-cmp-ab="1" data-cmp-vendor="c21267"> 1410 1411// ***************************************** 1412// Einträge im sessionStorage bereinigen - z.B. nach Logout 1413// ***************************************** 1414async function om_wipe_sessionStorage(){ 1415 if (sessionStorage.hasResAccess){sessionStorage.removeItem("hasResAccess");} 1416 if (sessionStorage.jwotChecked){sessionStorage.removeItem("jwotChecked");} 1417 if (sessionStorage.uuid){sessionStorage.removeItem("uuid");} 1418 if (sessionStorage.encUN){sessionStorage.removeItem("encUN");} 1419 if (sessionStorage.mtm_cur_mail){sessionStorage.removeItem("mtm_cur_mail");} 1420 if (sessionStorage.hasPremiumAccess){sessionStorage.removeItem("hasPremiumAccess");} 1421 if (sessionStorage.encUID){sessionStorage.removeItem("encUID");} 1422 if (sessionStorage.mtm_login_event){sessionStorage.removeItem("mtm_login_event");} 1423 if (sessionStorage.encMail){sessionStorage.removeItem("encMail");} 1424 if (sessionStorage.auth_check){sessionStorage.removeItem("auth_check");} 1425 if (sessionStorage.sso_logged_in){sessionStorage.removeItem("sso_logged_in");} 1426} 1427 1428// ***************************************** 1429// Checkout nach Abo-Check wieder fortsetzen. 1430// ***************************************** 1431async function restart_checkout(return_code){ 1432 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function restart_checkout called"); 1433 let params = dnt_piano_get_checkout_params(); 1434 dnt_piano_start_checkout(params, 10); 1435 //return return_code; 1436} 1437 1438// ***************************************** 1439// Ãberprüfen, ob der Benutzer bereits bei Piano angelegt wurde. 1440// Ergebnis an check_for_user zurückgeben. 1441// ***************************************** 1442async function check_user_at_piano(uuid) { 1443 return new Promise(resolve => { 1444 setTimeout(() => { 1445 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_user_at_piano called"); 1446 var send_string = "?action=check_user&uuid=" + uuid; 1447 var the_URL_2 ="https://newsapptec.onetz.de:8085" + send_string; 1448 var xhr_2 = new XMLHttpRequest(); 1449 xhr_2.open('GET', the_URL_2, true); 1450 xhr_2.send(); 1451 xhr_2.onloadend = function () { 1452 var response_code=JSON.parse(xhr_2.responseText).code; 1453 var response_info=JSON.parse(xhr_2.responseText).info; 1454 var response_complete = response_code + " " + response_info; 1455 1456 if (response_code === '200') { 1457 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_user_at_piano: VX success: " + response_complete); 1458 } 1459 else if (response_code === '2004') { 1460 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_user_at_piano: VX success: " + response_complete); 1461 } 1462 else { 1463 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_user_at_piano: VX error: " + response_complete); 1464 } 1465 resolve(response_code); 1466 }; 1467 }, 500); 1468 }); 1469} 1470 1471// ***************************************** 1472// Async-Zwischenfunktion - Ãberprüfen ob ein Nutzer bereits bei Piano angelegt wurde. 1473// ***************************************** 1474async function check_for_user(uuid) { 1475 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_for_user called. Async wrapper function."); 1476 var safe_count = 0; 1477 var user_return_code = "2004"; 1478 1479 do { 1480 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_for_user: looping user check: "+ safe_count); 1481 user_return_code = await check_user_at_piano (uuid); 1482 if (user_return_code === '200'){ 1483 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_for_user: user found"); 1484 } 1485 safe_count ++; 1486 } while (user_return_code != '200' && safe_count <= 5); 1487 1488 if (user_return_code != '200' && safe_count > 5) { 1489 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_for_user: error at VX-server!"); 1490 alert ("Leider kam es zu einem Server-Fehler.\n\nBitte wenden Sie sich an unseren Leserservice unter Angabe dieses Fehlercodes: VX-2004."); 1491 } 1492 console.log("%c4295949","background-color:darkolivegreen; color:white;","Function check_for_user: sending user return code."); 1493 return user_return_code; 1494} 1495 1496// ***************************************** 1497// obsolete Event-Listener - Start 1498// ***************************************** 1499window.addEventListener('message', function(event) { 1500 1501 // ***************************************** 1502 // Web-Event - Regwall anzeigen - Regwall aber nicht mehr vorhanden 1503 // ***************************************** 1504 if (event.origin == 'https://www.onetz.de' && typeof(event.data.event_id) !== 'undefined') { 1505 if (event.data.event_id == 'show_regwall' && event.data.code === 1717) { 1506 console.log("%c4295949","background-color:darkolivegreen; color:white;", 1507 "Received show_regwall event. Adding protection and displaying regwall"); 1508 //om_blur_content(); 1509 om_rw_show_login(); 1510 } 1511 } 1512 1513 // ***************************************** 1514 // Piano Events 1515 // ***************************************** 1516 if (event.origin == 'https://buy.tinypass.com' && typeof(event.data.event_id) !== 'undefined') { 1517 1518 // ***************************************** 1519 // Ein Piano-Template übermittelt ein Login-Event (Login-iframe in Piano Template) - CMS Login anstoÃen 1520 // ***************************************** 1521 if (event.data.event_id == 'login' && event.data.code === 2000) { 1522 console.log("%c4295949","background-color:darkolivegreen; color:white;", 1523 "Received auth event from piano for default login. Performing local login."); 1524 window.location = 'https://www.onetz.de/user/login'; 1525 } 1526 1527 // ***************************************** 1528 // Eventhandler für Login/Registrierung auf altem Piano-Login-Template. 1529 // Nachdem der Login inzwischen anders integriert ist, könnten wir das wahrscheinlich entfernen. 1530 // ***************************************** 1531 if (event.data.event_id == 'checkout' && (event.data.code === 2000 || event.data.code === 5000)) { 1532 console.log("%c4295949","background-color:darkolivegreen; color:white;", 1533 "Received checkout event from piano. Resuming checkout. Code:" + event.data.code); 1534 window.dispatchEvent(new CustomEvent('ssoAuthStateChanged', {detail:{}})); 1535 1536 setTimeout(function() { 1537 console.log("%c4295949","background-color:darkolivegreen; color:white;","Performing JWT-based subscription check."); 1538 var theURL = ""; 1539 1540 // ***************************************** 1541 // uuid im sessionStorage? Wenn ja, dann für den JWOT-Abruf nutzen. 1542 // Wenn nein, wird der Session-Cookie genutzt (unzuverlässiger und langsamer). 1543 // ***************************************** 1544 if (sessionStorage.encUID){ 1545 theURL = "https://piano-connector.onetz.de/api/jwt/"+atob(sessionStorage.encUID); 1546 } 1547 else { 1548 theURL = "https://piano-connector.onetz.de/api/jwt"; 1549 } 1550 1551 // ***************************************** 1552 // Hasso JWOT abfragen - Abo-Infos erhalten. 1553 // ***************************************** 1554 let xhr = new XMLHttpRequest(); 1555 xhr.open("GET", theURL); 1556 xhr.withCredentials = true; 1557 xhr.setRequestHeader("Content-Type", "application/json"); 1558 xhr.send(); 1559 1560 // ***************************************** 1561 // Allgemeiner Fehlerhandler 1562 // ***************************************** 1563 xhr.onerror = function () { 1564 console.error("%c4295949", "background-color:darkolivegreen; color:white;", 1565 "XHR Error .onerror: " + xhr.status); 1566 }; 1567 1568 // ***************************************** 1569 // Firefox blockt den Request. 1570 // ***************************************** 1571 xhr.onload = function () { 1572 if (xhr.status == 404) { 1573 if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { 1574 console.error("%c4295949", "background-color:darkolivegreen; color:white;", 1575 "404 detected. Browser is Firefox"); 1576 } 1577 else { 1578 console.error("%c4295949", "background-color:darkolivegreen; color:white;", 1579 "404 detected. Performing page refresh"); 1580 //setTimeout(function () { location.reload(); }, 500); 1581 } 1582 } 1583 }; 1584 1585 // ***************************************** 1586 // JWOT empfangen 1587 // ***************************************** 1588 xhr.onloadend = function () { 1589 if (xhr.status == 200) { 1590 var base64Url = xhr.responseText.split('.')[1]; 1591 var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); 1592 var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {
1593 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 1594 }).join('')); 1595 1596 var antw = JSON.parse(jsonPayload); 1597 var resAccess=(antw.resourceAccess); 1598 var encUN = btoa(antw.name); 1599 var encUID = btoa(antw.sub); 1600 sessionStorage.setItem("encUN", encUN); 1601 sessionStorage.setItem("encUID", encUID); 1602 1603 // ***************************************** 1604 // Nutzer hat Abo-Einträge - Plus oder EP 1605 // ***************************************** 1606 if (resAccess.length > 0) { 1607 sessionStorage.setItem("hasResAccess", "true"); 1608 1609 if(typeof data.targetedTermId == "undefined" && data.offerType != "upgradeOffer") { 1610 //if(data.offerType != "upgradeOffer" && data.type != "gift") { 1611 // ***************************************** 1612 // Kein Upgrade - Info anzeigen 1613 // ***************************************** 1614 console.log("%c4295949","background-color:darkolivegreen; color:white;","User has active subscription."); 1615 let CheckPlus = false; 1616 for (let i=0; i < resAccess.length; i++) { 1617 if (resAccess[i].includes("Plus") || resAccess[i].includes("plus")) { 1618 CheckPlus = true; 1619 } 1620 } 1621 1622 $(".tp-close").click(); 1623 document.addEventListener("visibilitychange", () => { 1624 console.log("%c4295949","background-color:darkolivegreen; color:white;", 1625 "Received visibilitychange event. Cancel checkout and remove data."); 1626 dnt_piano_remove_checkout_params(); 1627 dnt_piano_finalize_checkout(); 1628 }); 1629 1630 if (CheckPlus === true) { 1631 sessionStorage.setItem("hasPremiumAccess", "true"); 1632 tp.template.show({'templateId':'OTQ75DD8YVX7', 'showCloseButton': false}); 1633 } 1634 else { 1635 sessionStorage.setItem("hasPremiumAccess", "false"); 1636 tp.template.show({'templateId':'OTQ75DD8YVX7',templateVariantId: 'OTVR9XDA00P5X', 'showCloseButton': false}); 1637 } 1638 } 1639 else { 1640 // ***************************************** 1641 // Upgrade - Kauf fortsetzen, wenn Login oder Registrierung abgeschlossen. 1642 // ***************************************** 1643 let params = dnt_piano_get_checkout_params(); 1644 if (event.data.code === 2000) { 1645 console.log("Wait 0.5 sec then proceed."); 1646 dnt_piano_start_checkout(params, 500); 1647 } 1648 else if (event.data.code === 5000) { 1649 check_for_user(antw.sub) 1650 .then(restart_checkout); 1651 } 1652 } 1653 } 1654 else { 1655 // ***************************************** 1656 // Kein Abo - Kauf fortsetzen, wenn Login oder Registrierung abgeschlossen. 1657 // ***************************************** 1658 console.log("%c4295949","background-color:darkolivegreen; color:white;","User has NO active subscriptions. Resume checkout."); 1659 let params = dnt_piano_get_checkout_params(); 1660 if (event.data.code === 2000) { 1661 console.log("%c4295949","background-color:darkolivegreen; color:white;","User already registered."); 1662 dnt_piano_start_checkout(params, 50); 1663 } 1664 else if (event.data.code === 5000) { 1665 console.log("%c4295949","background-color:darkolivegreen; color:white;","Newly registered user. Waiting for Hasso-Piano-Sync."); 1666 check_for_user(antw.sub) 1667 .then(restart_checkout); 1668 } 1669 } 1670 } 1671 else { 1672 // ***************************************** 1673 // Fehler beim Abo-Check - Kauf fortsetzen. 1674 // ***************************************** 1675 console.log("%c4295949","background-color:darkolivegreen; color:white;", 1676 "XHR Error - resume checkout without subscription check: " + xhr.status); 1677 let params = dnt_piano_get_checkout_params(); 1678 dnt_piano_start_checkout(params, 500); 1679 } 1680 }; 1681 }, 500); 1682 } 1683 } 1684}); 1685// ***************************************** 1686// obsolete Event-Listener - Ende 1687// ***************************************** 1688 1689 1690 1691// ***************************************** 1692// Event-Listener, die auf Signale von Hasso, Piano oder der Website warten. 1693// ***************************************** 1694window.addEventListener('message', function(event) { 1695 1696 // ***************************************** 1697 // Hasso-Events 1698 // ***************************************** 1699 // Login oder Registrierung erfolgreich.
1700 // ***************************************** 1701 if (event.origin == 'https://sso.onetz.de' && (event.data.code === 2000 || event.data.code === 5000)) { 1702 console.log("%c4295949","background-color:darkolivegreen; color:white;","User is logged in. Forced page reload."); 1703 location.reload(); 1704 1705 //ursprünglicher Fenni-Code 1706 //$('.sso-login-box-wrapper').remove(); 1707 //window.dispatchEvent(new CustomEvent('ssoAuthStateChanged', {detail: {}})); 1708 //let params = dnt_piano_get_checkout_params(); 1709 //dnt_piano_start_checkout(params, 2000); 1710 } 1711 1712 // ***************************************** 1713 // Bei einem Logout werden die sessionStorage-Einträge gelöscht 1714 // ***************************************** 1715 if (event.origin == 'https://sso.onetz.de' && event.data.code === 2100) { 1716 console.log("%c4295949","background-color:darkolivegreen; color:white;","User is NOT logged in. Removing data from sessionStorage."); 1717 om_wipe_sessionStorage(); 1718 } 1719 1720 // ***************************************** 1721 // Piano-Events 1722 // ***************************************** 1723 if (event.origin == 'https://buy.tinypass.com' && typeof(event.data.event_id) !== 'undefined') { 1724 1725 // ***************************************** 1726 // MyAccount - nach einem Tab-Klick Seite nach oben scrollen. 1727 // ***************************************** 1728 if (event.data.event_id == 'tab-klick' && event.data.code === 1000) { 1729 window.scrollTo({top: 200,left: 0, behavior: 'smooth' }); 1730 } 1731 1732 // ***************************************** 1733 // Firefox-Nutzer - Infomeldung wird entfernt und für 180 Tage ausgeblendet. 1734 // ***************************************** 1735 if (event.data.event_id == 'msg_close_click' && event.data.code === 1010) { 1736 console.log("%c4295949","background-color:darkolivegreen; color:white;","Received message close click event from Firefox info message."); 1737 const d = new Date(); 1738 d.setTime(d.getTime() + (180*24*60*60*1000)); 1739 let expires = "expires="+ d.toUTCString(); 1740 document.cookie = "_pc_ff_msg_close = true;" + expires + ";path=/"; 1741 console.log("%c4295949","background-color:darkolivegreen; color:white;","Set _pc_ff_msg_close cookie."); 1742 let ff_msg_boxes = document.getElementsByClassName('piano_container_infotext') 1743 for (let i_ff = 0; i_ff < ff_msg_boxes.length; i_ff++) { 1744 ff_msg_boxes[i_ff].classList.add('dnt_versteckt'); 1745 } 1746 } 1747 1748 // ***************************************** 1749 // Checkout abgebrochen und weiter zu Plus Upgrade-Seite geleitet 1750 // ***************************************** 1751 if (event.data.event_id == 'gotoinfo_plus' && event.data.code === 4242) { 1752 console.log("%c4295949","background-color:darkolivegreen; color:white;", 1753 "Received gotoinfo_plus event from piano. Cancel checkout got to info page."); 1754 window.location = 'https://www.onetz.de/plus_upgrades'; 1755 } 1756 1757 // ***************************************** 1758 // Checkout abgebrochen und weiter zu E-Paper Vorteils-Seite geleitet 1759 // ***************************************** 1760 if (event.data.event_id == 'gotoinfo_ep' && event.data.code === 4242) { 1761 console.log("%c4295949","background-color:darkolivegreen; color:white;", 1762 "Received gotoinfo_ep event from piano. Cancel checkout got to info page."); 1763 window.location = 'https://www.onetz.de/pr/epaper-alle-vorteile-ueberblick-id2633267.html'; 1764 } 1765 1766 // ***************************************** 1767 // Checkout abgebrochen und Meldung geschlossen - keine weiter Aktion 1768 // ***************************************** 1769 if (event.data.event_id == 'cancle' && event.data.code === 4343) { 1770 console.log("%c4295949","background-color:darkolivegreen; color:white;","Received cancel event from piano. Cancel checkout."); 1771 dnt_piano_remove_checkout_params(); 1772 dnt_piano_finalize_checkout(); 1773 } 1774 1775 // ***************************************** 1776 // Login-Link auf Paywall geklickt - Hasso-Layer anzeigen. 1777 // ***************************************** 1778 if (event.data.event_id == 'just_login' && event.data.code === 7777) { 1779 console.log("%c4295949","background-color:darkolivegreen; color:white;","Received just_login event from piano. Showing inpage login."); 1780 dnt_piano_store_redirect_url(window.location.pathname); 1781 om_pw_show_login(); 1782 } 1783 1784 // ***************************************** 1785 // Matomo-Tracking innerhalb eines VX-Templates empfangen 1786 // ***************************************** 1787 if (event.data.event_id == 'mtm_click_tracked' && event.data.code === 8585) { 1788 console.log("%c4295949","background-color:darkolivegreen; color:white;","Received mtm_click_tracked event: "+event.data.item_clicked); 1789 } 1790 } 1791 1792 // ***************************************** 1793 // Events, die sowohl von Piano als auch von onetz.de aus ausgelöst werden können.
1794 // ***************************************** 1795 if ((event.origin == 'https://buy.tinypass.com' || event.origin == 'https://www.onetz.de') && typeof(event.data.event_id) !== 'undefined') { 1796 // ***************************************** 1797 // Wird von System Template Receipt aufgerufe, nachdem SchlieÃen (auch schlieÃen 'X') geklickt wurde. 1798 // Speichert aktuelle URL für page reload nach dem Kauf. 1799 // ***************************************** 1800 if ((event.data.event_id == 'finish_purchase' || event.data.event_id == 'has_access') && event.data.code === 5555) { 1801 if (window.location.href.includes("/plus") === false && window.location.href.includes("onetzplus-abo-verwalten") === false) { 1802 localStorage.setItem("dntCoTarget", window.location.pathname); 1803 } 1804 else { 1805 localStorage.setItem("dntCoTarget", "/onetzplus"); 1806 } 1807 console.log("%c4295949","background-color:darkolivegreen; color:white;","Page refresh event after purchase: " + localStorage.dntCoTarget); 1808 dnt_piano_finalize_checkout(); 1809 } 1810 } 1811}); 1812 1813 1814// ***************************************** 1815// Piano-VX - Eventhandler - In den Start des Checkouts die Abo-Ãberprüfung integrieren. 1816// ***************************************** 1817tp = window["tp"] || []; 1818tp.push(["addHandler", "startCheckout", function(data) { 1819 console.log("%c4295949","background-color:darkolivegreen; color:white;","Start Checkout."); 1820 // console.log("%c4295949","background-color:darkolivegreen; color:white;"," Start Checkout Data: " + JSON.stringify(data)); 1821 // ***************************************** 1822 // Rücksprungziel für nach dem Login sichern. 1823 // ***************************************** 1824 let redir_url = new URLSearchParams(location.search).get('doi_success_redirect'); 1825 if (redir_url === null) { 1826 console.log("%c4295949","background-color:darkolivegreen; color:white;","No doi_success_redirect value in location.search."); 1827 if (location.href.match(/(id\d{7})/gi) === null ) { 1828 if (data.isRedemption == true || data.isRedemption == "true"){ 1829 console.log("%c4295949","background-color:darkolivegreen; color:white;","Gift subscription redemption page."); 1830 //redir_url = "/plus_test_lp_voucher"; 1831 redir_url = "/onetzplus"; 1832 } 1833 else { 1834 console.log("%c4295949","background-color:darkolivegreen; color:white;","No article id in location.href."); 1835 redir_url = "/onetzplus"; 1836 } 1837 } 1838 else { 1839 console.log("%c4295949","background-color:darkolivegreen; color:white;","Article id in location.href."); 1840 redir_url = location.pathname; 1841 } 1842 } 1843 console.log("%c4295949","background-color:darkolivegreen; color:white;","doi_success_redirect: "+redir_url); 1844 1845 dnt_piano_store_redirect_url(redir_url); 1846 console.log("%c4295949","background-color:darkolivegreen; color:white;","DOI redirect url stored."); 1847 1848 // ***************************************** 1849 // Handelt es sich um ein Upgrade oder nicht? 1850 // Bei einem Upgrade wird der Kauf nicht unterbrochen. 1851 // ***************************************** 1852 1853 1854 if (typeof data.offerType != "undefined" && data.offerType == "upgradeOffer"){ 1855 // ***************************************** 1856 // Upgrade - Kauf fortsetzen 1857 // ***************************************** 1858 console.log("%c4295949","background-color:darkolivegreen; color:white;","Subscription type upgrade. Resume checkout."); 1859 1860 // ***************************************** 1861 // Ladeanimation ausblenden 1862 // ***************************************** 1863 if (document.getElementById("dnt_anim_loader")) { 1864 document.getElementById("dnt_anim_loader").style.display="none"; 1865 } 1866 } 1867 else if (typeof data.type != "undefined" && data.type == "gift") { 1868 // ***************************************** 1869 // Voucher - Kauf fortsetzen 1870 // ***************************************** 1871 console.log("%c4295949","background-color:darkolivegreen; color:white;","Subscription type voucher. Resume checkout."); 1872 1873 // ***************************************** 1874 // Ladeanimation ausblenden 1875 // ***************************************** 1876 if (document.getElementById("dnt_anim_loader")) { 1877 document.getElementById("dnt_anim_loader").style.display="none"; 1878 } 1879 } 1880 else if (typeof data.isRedemption != "undefined" && (data.isRedemption == true || data.isRedemption == "true")) { 1881 // ***************************************** 1882 // Vouchereinlösung - Kauf fortsetzen 1883 // ***************************************** 1884 console.log("%c4295949","background-color:darkolivegreen; color:white;","Voucher redemption. Resume checkout."); 1885 1886 // ***************************************** 1887 // Ladeanimation ausblenden 1888 // ***************************************** 1889 const anim_wait = setTimeout (function (){ 1890 document.getElementById("dnt_anim_loader").style.display = "none"; 1891 },2500); 1892 } 1893 else { 1894 console.log("%c4295949","background-color:darkolivegreen; color:white;","No upgrade. No voucher redemption. Continue subscription check."); 1895 1896 // ***************************************** 1897 // Gibt es bereits gespeicherte Abo-Infos? 1898 // ***************************************** 1899 if (sessionStorage.hasResAccess) { 1900 console.log("%c4295949","background-color:darkolivegreen; color:white;","SessionStorage entry hasResAccess found."); 1901 1902 if (sessionStorage.hasResAccess == "true"){ 1903 // ***************************************** 1904 // Aktives Abo - Meldung entsprechend anzeigen 1905 // ***************************************** 1906 1907 1908 // ***************************************** 1909 // Ladeanimation einblenden 1910 // ***************************************** 1911 if (document.getElementById("dnt_anim_loader")) { 1912 document.getElementById("dnt_anim_loader").style.display="block"; 1913 } 1914 1915 console.log("%c4295949","background-color:darkolivegreen; color:white;","User has active subscription."); 1916 //$(".tp-close").click(); 1917 tp.offer.close(); 1918 1919 // ***************************************** 1920 // Der Prozess arbeitet zu schnell für die Seite - 750ms warten. 1921 // ***************************************** 1922 setTimeout(function(){ 1923 // ***************************************** 1924 // Ladeanimation ausblenden 1925 // ***************************************** 1926 if (document.getElementById("dnt_anim_loader")) { 1927 document.getElementById("dnt_anim_loader").style.display="none"; 1928 } 1929 1930 tp.offer.showBackdrop(); 1931 if (sessionStorage.hasPremiumAccess && sessionStorage.hasPremiumAccess == "true") { 1932 console.log("%c4295949","background-color:darkolivegreen; color:white;","User has premium subscription."); 1933 tp.template.show({'templateId':'OTQ75DD8YVX7', 'showCloseButton': false}); 1934 1935 } 1936 else { 1937 console.log("%c4295949","background-color:darkolivegreen; color:white;","User has epaper subscription."); 1938 tp.template.show({'templateId':'OTQ75DD8YVX7',templateVariantId: 'OTVR9XDA00P5X', 'showCloseButton': false}); 1939 } 1940 }, 750); 1941 } 1942 else { 1943 // ***************************************** 1944 // Kein Abo - Kauf fortsetzen 1945 // ***************************************** 1946 console.log("%c4295949","background-color:darkolivegreen; color:white;","User has NO active subscriptions. Resume checkout."); 1947 1948 // ***************************************** 1949 // Ladeanimation ausblenden 1950 // ***************************************** 1951 if (document.getElementById("dnt_anim_loader")) { 1952 document.getElementById("dnt_anim_loader").style.display="none"; 1953 } 1954 } 1955 } 1956 else { 1957 // ***************************************** 1958 // Kein gespeicherten Abo-Informationen. Abo Check mit JWOT wird ausgeführt. 1959 // ***************************************** 1960 console.log("%c4295949","background-color:darkolivegreen; color:white;","No sessionStorage entry hasResAccess. Continue subscription check"); 1961 1962 var theURL = ""; 1963 1964 // ***************************************** 1965 // encUID im sessionStorage? Wenn ja, dann für den JWOT-Abruf nutzen. 1966 // Wenn nein, wird der Session-Cookie genutzt (unzuverlässiger und langsamer). 1967 // ***************************************** 1968 if (sessionStorage.encUID){ 1969 theURL = "https://piano-connector.onetz.de/api/jwt/"+atob(sessionStorage.encUID); 1970 } 1971 else { 1972 theURL = "https://piano-connector.onetz.de/api/jwt"; 1973 } 1974 1975 // ***************************************** 1976 // Hasso JWOT abfragen - Abo-Infos erhalten. 1977 // ***************************************** 1978 var xhr = new XMLHttpRequest(); 1979 xhr.open("GET", theURL); 1980 xhr.withCredentials = true; 1981 xhr.setRequestHeader("Content-Type", "application/json"); 1982 xhr.send(); 1983 1984 // ***************************************** 1985 // Allgemeiner Fehlerhandler 1986 // ***************************************** 1987 xhr.onerror = function () { 1988 console.error("%c4295949 - TP startCheckout", "background-color:darkolivegreen; color:white;", 1989 "XHR Error .onerror: " + xhr.status); 1990 } 1991 1992 // ***************************************** 1993 // Firefox blockt den Request. 1994 // ***************************************** 1995 xhr.onload = function () { 1996 if (xhr.status == 404) { 1997 if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { 1998 console.error("%c4295949", "background-color:darkolivegreen; color:white;", 1999 "404 detected. Browser is Firefox"); 2000 } 2001 else { 2002 console.error("%c4295949", "background-color:darkolivegreen; color:white;", 2003 "404 detected. Performing page refresh"); 2004 //setTimeout(function () { location.reload(); }, 500); 2005 } 2006 } 2007 }; 2008 2009 // ***************************************** 2010 // JWOT empfangen 2011 // ***************************************** 2012 xhr.onloadend = function () { 2013 if (xhr.status == 200) { 2014 console.log("%c4295949","background-color:darkolivegreen; color:white;","JWT successfully received."); 2015 var base64Url = xhr.responseText.split('.')[1]; 2016 var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); 2017 var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {
2018 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 2019 }).join('')); 2020 2021 var antw = JSON.parse(jsonPayload); 2022 var resAccess=(antw.resourceAccess); 2023 var encUN = btoa(antw.name); 2024 var encUID = btoa(antw.sub); 2025 sessionStorage.setItem("encUN", encUN); 2026 sessionStorage.setItem("encUID", encUID); 2027 2028 // ***************************************** 2029 // Ladeanimation ausblenden 2030 // ***************************************** 2031 if (document.getElementById("dnt_anim_loader")){document.getElementById("dnt_anim_loader").style.display="none";} 2032 2033 // ***************************************** 2034 // Nutzer hat Abo-Einträge - Plus oder EP 2035 // ***************************************** 2036 if (resAccess.length > 0) { 2037 sessionStorage.setItem("hasResAccess", "true"); 2038 2039 if(typeof data.targetedTermId === "undefined" && data.offerType != "upgradeOffer"){ 2040 2041 // ***************************************** 2042 // Kein Upgrade - Meldung entsprechend anzeigen 2043 // ***************************************** 2044 console.log("%c4295949","background-color:darkolivegreen; color:white;","No upgrade. Continue subscription check."); 2045 console.log("%c4295949","background-color:darkolivegreen; color:white;","User has active subscription."); 2046 let CheckPlus = false; 2047 for (let i=0; i < resAccess.length; i++) { 2048 if (resAccess[i].includes("Plus") || resAccess[i].includes("plus")) { 2049 CheckPlus = true; 2050 } 2051 } 2052 tp.offer.close(); 2053 2054 if (CheckPlus === true) { 2055 sessionStorage.setItem("hasPremiumAccess", "true"); 2056 tp.template.show({'templateId':'OTQ75DD8YVX7', 'showCloseButton': false}); 2057 } 2058 else { 2059 sessionStorage.setItem("hasPremiumAccess", "false"); 2060 tp.template.show({'templateId':'OTQ75DD8YVX7',templateVariantId: 'OTVR9XDA00P5X', 'showCloseButton': false}); 2061 } 2062 } 2063 else { 2064 // ***************************************** 2065 // Upgrade - Kauf fortsetzen 2066 // ***************************************** 2067 console.log("%c4295949","background-color:darkolivegreen; color:white;","Upgrade. Skipping subscription check."); 2068 } 2069 } 2070 else { 2071 // ***************************************** 2072 // Kein Abo - Kauf fortsetzen 2073 // ***************************************** 2074 console.log("%c4295949","background-color:darkolivegreen; color:white;","User has NO active subscriptions. Resume checkout."); 2075 } 2076 } 2077 else { 2078 // ***************************************** 2079 // Fehler beim Abo-Check - Kauf fortsetzen. 2080 // ***************************************** 2081 console.log("%c4295949","background-color:darkolivegreen; color:white;", 2082 "XHR Error - resume checkout without subscription check: " + xhr.status); 2083 let params = dnt_piano_get_checkout_params(); 2084 dnt_piano_start_checkout(params, 500); 2085 } 2086 }; 2087 } 2088 } 2089}]); 2090 2091if (location.search.includes("loggedout") || location.search.includes("loggedOut")){ 2092 om_wipe_sessionStorage() 2093 .then (()=> { 2094 let search_para = new URLSearchParams(location.search); 2095 search_para.delete("loggedOut"); 2096 search_para.delete("loggedout"); 2097 let new_url = ""; 2098 if (typeof location.pathname != "undefined") { 2099 new_url = location.origin + location.pathname; 2100 } else { 2101 new_url = location.origin; 2102 } 2103 if (search_para.size > 0){ 2104 new_url = new_url + "?" + search_para; 2105 } 2106 location.replace(new_url); 2107 console.warn ("Session storage wiped"); 2108 }); 2109} 2110</script>
2110 </div> 2111 2112 2113</article> <!-- /.node --> 2114 </div> 2115 2116 2117 2118 </div> 2119<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node dm-nobg" > 2120 2121 2122 2123 <div class="pane-content"> 2124 2125 <article id="node-4296323" class="node node-type-thing build-mode-full clearfix "> 2126 2127 2128 2129 2130 <div class="content"> 2131 2132<p>
2132<script data-cmp-ab="1" data-cmp-vendor="c21267"> 2133 2134// ***************************************** 2135// toggle_ad_z_index - Ãndert den Z-index der Footer-Werbeelmente, damit diese nicht das Menü überdecken. 2136// ***************************************** 2137function toggle_ad_z_index(button){ 2138 console.log("%c4296323","background-color:darkolivegreen; color:white;","Button clicked: "+button); 2139 let sticky_cont = document.getElementsByClassName('trf-ad-bottom-sticky-container'); 2140 let nav_header = document.getElementById('header'); 2141 let nav_menu = document.getElementById('navigation'); 2142 if (nav_menu.classList.contains('nav-open')) { 2143 nav_menu.style.zIndex = "2147483636"; 2144 nav_header.style.zIndex = "2147483646"; 2145 } else { 2146 nav_menu.style.zIndex = "5000000"; 2147 nav_header.style.zIndex = "5000010"; 2148 } 2149 for (let cont_item of sticky_cont){ 2150 if (cont_item.style.display != "none"){ 2151 console.log("%c4296323","background-color:darkolivegreen; color:white;","Active sticky footer found."); 2152 if (cont_item.style.zIndex == 1){ 2153 console.log("%c4296323","background-color:darkolivegreen; color:white;","Z-index set to 2147483646"); 2154 cont_item.style.zIndex = "2147483646"; 2155 } 2156 else { 2157 console.log("%c4296323","background-color:darkolivegreen; color:white;","Z-index set to 1"); 2158 cont_item.style.zIndex = "1"; 2159 } 2160 } 2161 else { 2162 console.log("%c4296323","background-color:darkolivegreen; color:white;","Sticky footer NOT found"); 2163 } 2164 } 2165} 2166 2167document.addEventListener('trfSlotRendered', function(){ 2168 console.warn(event.detail.placement); 2169}); 2170 2171// ***************************************** 2172// navbar-element-user click event listener hinzufügen - Werbung verstecken bei Klick auf Nutzerprofil/Login-Icon 2173// ***************************************** 2174if (typeof document.getElementsByClassName("navbar-element-user") != "undefined" 2175 && document.getElementsByClassName("navbar-element-user").length > 0 ) { 2176 document.getElementsByClassName("navbar-element-user")[0].addEventListener("click", function() { 2177 toggle_ad_z_index("profile"); 2178 }); 2179} 2180 2181// ***************************************** 2182// Burger-Navi click event listener hinzufügen - Werbung verstecken bei Klick auf Burger-Navi 2183// ***************************************** 2184if (typeof document.getElementsByClassName("navbar-element-hamburger") != "undefined" 2185 && document.getElementsByClassName("navbar-element-hamburger").length > 0) { 2186 document.getElementsByClassName("navbar-element-hamburger")[0].addEventListener("click", function() { 2187 toggle_ad_z_index("burger"); 2188 }); 2189} 2190 2191window.addEventListener('message', function(event) { 2192 2193 // ***************************************** 2194 //Show-Hide event listener triggered by login requests on Paywall 2195 // ***************************************** 2196 if (event.origin === "https://www.onetz.de" || event.origin === "https://buy.tinypass.com" || event.origin === "https://sso.onetz.de") { 2197 2198 // ***************************************** 2199 // Paywall oder andere Elemente können dieses Event schicken und damit alle Footer-Werbeelemente verstecken, 2200 // damit diese keine funktionalen Elemente der Website oder anderer Prozesse überdecken. 2201 // ***************************************** 2202 if (event.data.event_id == 'hide' && event.data.code === 8080) { 2203 console.log("%c4296323","background-color:darkolivegreen; color:white;","Received hide sticky container event from webpage: " + event.origin); 2204 let sticky_cont = document.getElementsByClassName('trf-ad-bottom-sticky-container'); 2205 for (let cont_item of sticky_cont){ 2206 if (cont_item.style.display != "none"){ 2207 cont_item.style.zIndex = "1"; 2208 } 2209 } 2210 } 2211 if (event.data.event_id == 'restore' && event.data.code === 8081) { 2212 console.log('got restore event from webpage: ' + event.origin); 2213 let sticky_cont = document.getElementsByClassName('trf-ad-bottom-sticky-container'); 2214 for (let cont_item of sticky_cont){ 2215 if (cont_item.style.display != "none"){ 2216 cont_item.style.zIndex = "2147483646"; 2217 } 2218 } 2219 } 2220 } 2221 2222 // ***************************************** 2223 // Event-Listener, der auf Hasso-Events bei erfolgreichem Login oder Registrierung reagiert. Nutzen unbekannt. 2224 // Die Website empfängt die Events in dem Moment sowieso und informiert sich quasi ein zweites Mal selbst darüber.
2225 // ***************************************** 2226 if (event.origin === "https://sso.onetz.de") { 2227 if(event.data.code === 2000) { 2228 parent.postMessage({event_id: 'login', code: 2000}, 'https://www.onetz.de'); 2229 console.log("%c4296323","background-color:darkolivegreen; color:white;","Handing down message event - sso to www."); 2230 } 2231 else if(event.data.code === 5000) { 2232 parent.postMessage({event_id: 'login', code: 5000}, 'https://www.onetz.de'); 2233 console.log("%c4296323","background-color:darkolivegreen; color:white;","Handing down message event - sso to www."); 2234 } 2235 } 2236}); 2237 2238tp = window["tp"] || []; 2239var dnt_piano_checkout_disabled = true; 2240 2241 2242// ***************************************** 2243// Piano-VX - Eventhandler - Reagiert auf das LoginRequired-Event, das am Anfang des Checkouts ausgelöst wird. 2244// Kauf ist nur eingeloggten Nutzern möglich. Da wir Piano ID nicht nutzen, muss der Login im Checkout manuell gesteuert werden. 2245// ***************************************** 2246tp.push(["addHandler", "loginRequired", function(params, data){ 2247 console.log("%c4296323","background-color:darkolivegreen; color:white;","Login required."); 2248 console.log("%c4296323","background-color:darkolivegreen; color:white;","Log req Data: " + JSON.stringify(data) ); 2249 2250 2251 // ***************************************** 2252 // Das Piano-Params-Objekt enthält Informationen über den zuvor begonnen Checkout/Kauf. 2253 // ***************************************** 2254 dnt_piano_store_checkout_params(params); 2255 //tp.offer.close(); 2256 2257 // ***************************************** 2258 // Rücksprungziel für nach dem Login sichern. 2259 // ***************************************** 2260 let url = new URLSearchParams(location.search).get('doi_success_redirect'); 2261 if (url === null) { 2262 console.log("%c4296323","background-color:darkolivegreen; color:white;","No doi_success_redirect value in location.search."); 2263 if (location.href.match(/(id\d{7})/gi) === null ) { 2264 if (data.isRedemption == true || data.isRedemption == "true"){ 2265 console.log("%c4296323","background-color:darkolivegreen; color:white;","Gift subscription redemption page."); 2266 //url = "plus_test_lp_voucher"; 2267 url = "/onetzplus"; 2268 } 2269 else { 2270 console.log("%c4296323","background-color:darkolivegreen; color:white;","No article id in location.href."); 2271 url = "/onetzplus"; 2272 } 2273 } 2274 else { 2275 console.log("%c4296323","background-color:darkolivegreen; color:white;","Article id in location.href."); 2276 url = location.pathname; 2277 } 2278 } 2279 console.log("%c4296323","background-color:darkolivegreen; color:white;","doi_success_redirect: "+url); 2280 2281 dnt_piano_store_redirect_url(url); 2282 console.log("%c4296323","background-color:darkolivegreen; color:white;","DOI redirect url stored."); 2283 2284 // ***************************************** 2285 // Login-Layer anzeigen - in-Page-Login. 2286 // ***************************************** 2287 om_pw_show_login(); 2288 console.log("%c4296323","background-color:darkolivegreen; color:white;","Function om_pw_show_login(4287610) called."); 2289 2290 return false; 2291}]); 2292 2293// ***************************************** 2294// In der Onetz-App des Website-CMP deaktivieren. 2295// ***************************************** 2296if (navigator.userAgent.includes("_onetz_app") == true) { 2297 console.log ("%c4296323","background-color:limegreen; color:black;","Onetz App - Webview CMP-layer deactivated."); 2298 window.cmp_noscreen = true; 2299} 2300 2301</script>
2301</p> 2302 2303 </div> 2304 2305 2306</article> <!-- /.node --> 2307 </div> 2308 2309 2310 2311 </div> 2312<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node dm-nobg" > 2313 2314 2315 2316 <div class="pane-content"> 2317 2318 <article id="node-4855048" class="node node-type-thing build-mode-full clearfix "> 2319 2320 2321 2322 2323 <div class="content"> 2324
2324<script data-cmp-ab="2" data-cmp-vendor="c21267"> 2325 2326// ***************************************** 2327// hole ID aus der URL; wenn keine da ist: ID = URL ohne Parameter 2328// ***************************************** 2329function getArtikelID() { 2330 let artikel_id = window.location.toString().match(/d\d{7}/); 2331 if (artikel_id === null) { 2332 artikel_id = window.location.toString().split('www.')[1]; 2333 artikel_id = artikel_id.split('?')[0]; 2334 return artikel_id; 2335 } 2336 else { 2337 return artikel_id.toString().substring(1); 2338 } 2339} 2340 2341// ***************************************** 2342// User Needs, Themen-Kategorie und ReporterTeam aus den Meta-Tags auslesen und als Custom Dimensions an Matomo übermitteln. 2343// ***************************************** 2344function setCustomDimensions(){ 2345 let user_needs = document.querySelectorAll("meta[name*='user_needs']"); 2346 let topic_cats = document.querySelectorAll("meta[name*='themen_kat']"); 2347 let editorial_teams = document.querySelectorAll("meta[name*='ContentEditorialTeam']"); 2348 let page_class = document.querySelectorAll("meta[name*='pageclass']"); 2349 let user_need = "n/a"; 2350 let topic_cat = "n/a"; 2351 let editorial_team = "n/a"; 2352 2353 if (page_class.length != 1) { 2354 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2355 "Matomo-Integration - setCustomDimensions - page class - wrong number of entries: ", page_class.length); 2356 return; 2357 } 2358 if (page_class[0].content != "article") { 2359 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2360 "Matomo-Integration - setCustomDimensions - no article."); 2361 return; 2362 } 2363 2364 if (user_needs.length >= 1){ 2365 user_need = user_needs[0].content; 2366 } 2367 2368 if (topic_cats.length >= 1){ 2369 topic_cat = topic_cats[0].content; 2370 } 2371 2372 for (team of editorial_teams){ 2373 if (team.content != "MedienProduktion" && editorial_team == "n/a"){ 2374 editorial_team = team.content; 2375 } 2376 } 2377 2378 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2379 "Matomo-Integration - setCustomDimensions - user need: " + user_need + " - topic cat: " + topic_cat + " - editorial team: " + editorial_team ); 2380 _paq.push(['setCustomDimension', customDimensionId = 6, customDimensionValue = user_need]); 2381 _paq.push(['setCustomDimension', customDimensionId = 7, customDimensionValue = topic_cat]); 2382 _paq.push(['setCustomDimension', customDimensionId = 8, customDimensionValue = editorial_team]); 2383 2384 return; 2385} 2386 2387// ***************************************** 2388// Mail-Adresse für Checkout ermittln. 2389// Mail-Adresse bei internem Dienst abfragen und verschlüsselt zur Verfügung stellen. 2390// ***************************************** 2391function om_get_mail_addr(uuid) { 2392 var action = ""; 2393 var send_string = "?action=get_mail_addr_only&uuid=" + uuid; 2394 var the_URL = "https://newsapptec.onetz.de:8086" + send_string; 2395 var xhr = new XMLHttpRequest(); 2396 2397 2398 xhr.open('GET', the_URL, true); 2399 //xhr.withCredentials = true; 2400 //xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 2401 xhr.send(); 2402 xhr.onerror = function () { 2403 console.error("%c4855048", "background-color:darkolivegreen; color:white;", "om_get_mail_addr - request error: " + xhr.status); 2404 } 2405 xhr.onloadend = function () { 2406 if (xhr.status === 200) { 2407 var response_code = JSON.parse(xhr.responseText).code; 2408 var response_info = JSON.parse(xhr.responseText).info; 2409 var response_mail = JSON.parse(xhr.responseText).mail; 2410 if (response_code == '200') { 2411 sessionStorage.setItem("mtm_cur_mail", response_mail); 2412 sessionStorage.setItem("encMail", btoa(response_mail)); 2413 } 2414 else { 2415 console.error("%c4855048", "background-color:darkolivegreen; color:white;", 2416 "om_get_mail_addr - code: " + response_code + " - info: " + response_info); 2417 } 2418 } 2419 }; 2420} 2421 2422// ***************************************** 2423// Abo-Status ermittln. 2424// ***************************************** 2425function om_check_subs_jwot() { 2426 return new Promise(function (resolve, reject) { 2427 2428 // ***************************************** 2429 // Ãberprüfen, ob es bereits einen gespeicherten Abo-Status gibt. 2430 // ***************************************** 2431 if (sessionStorage.hasResAccess && sessionStorage.hasResAccess != "") { 2432 if (sessionStorage.hasResAccess == "true") { 2433 _paq.push(['setCustomDimension', customDimensionId = 3, customDimensionValue = "Ja"]); 2434 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2435 "Matomo-Integration - om_check_subs_jwot - user has premium access."); 2436 sessionStorage.setItem("hasResAccess", "true"); 2437 } 2438 else { 2439 _paq.push(['setCustomDimension', customDimensionId = 3, customDimensionValue = "Nein"]); 2440 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2441 "Matomo-Integration - om_check_subs_jwot - user has no premium access."); 2442 sessionStorage.setItem("hasResAccess", "false"); 2443 } 2444 resolve(); 2445 } 2446 else { 2447 2448 // ***************************************** 2449 // Kein gespeicherten Abo-Informationen. Abo Check mit JWOT wird ausgeführt. 2450 // ***************************************** 2451 var theURL = ""; 2452 2453 // ***************************************** 2454 // encUID im sessionStorage? Wenn ja, dann für den JWOT-Abruf nutzen. 2455 // Wenn nein, wird der Session-Cookie genutzt (unzuverlässiger und langsamer). 2456 // ***************************************** 2457 if (sessionStorage.encUID) { 2458 theURL = "https://piano-connector.onetz.de/api/jwt/"+atob(sessionStorage.encUID); 2459 } 2460 else { 2461 theURL = "https://piano-connector.onetz.de/api/jwt"; 2462 } 2463 2464 // ***************************************** 2465 // Hasso JWOT abfragen - Abo-Infos erhalten. 2466 // ***************************************** 2467 let xhr = new XMLHttpRequest(); 2468 xhr.open("GET", theURL); 2469 xhr.withCredentials = true; 2470 xhr.setRequestHeader("Content-Type", "application/json"); 2471 xhr.send(); 2472 2473 // ***************************************** 2474 // Allgemeiner Fehlerhandler 2475 // ***************************************** 2476 xhr.onerror = function () { 2477 console.error("%c4855048", "background-color:darkolivegreen; color:white;", 2478 "Matomo-Integration - om_check_subs_jwot - XHR Error .onerror: " + xhr.status); 2479 }; 2480 2481 // ***************************************** 2482 // Firefox blockt den Request. 2483 // ***************************************** 2484 xhr.onload = function () { 2485 if (xhr.status == 404) { 2486 if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { 2487 console.error("%c4855048", "background-color:darkolivegreen; color:white;", 2488 "Matomo-Integration - om_check_subs_jwot - 404 detected. Browser is Firefox"); 2489 } 2490 else { 2491 console.error("%c4855048", "background-color:darkolivegreen; color:white;", 2492 "Matomo-Integration - om_check_subs_jwot - 404 detected. Performing page refresh"); 2493 //setTimeout(function () { location.reload(); }, 500); 2494 } 2495 } 2496 }; 2497 2498 // ***************************************** 2499 // JWOT empfangen 2500 // ***************************************** 2501 xhr.onloadend = function () { 2502 if (xhr.status == 200) { 2503 sessionStorage.setItem("jwotChecked", "true"); 2504 var base64Url = xhr.responseText.split('.')[1]; 2505 var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); 2506 var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function (c) {
2507 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 2508 }).join('')); 2509 var antw = JSON.parse(jsonPayload); 2510 var resAccess = (antw.resourceAccess); 2511 var encUN = btoa(antw.name); 2512 var encUID = btoa(antw.sub); 2513 sessionStorage.setItem("encUN", encUN); 2514 sessionStorage.setItem("encUID", encUID); 2515 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2516 "Matomo-Integration - om_check_subs_jwot - setting encUN: " +encUN ); 2517 2518 // ***************************************** 2519 // Nutzer hat Abo-Einträge - Plus oder EP 2520 // ***************************************** 2521 if (resAccess.length > 0) { 2522 _paq.push(['setCustomDimension', customDimensionId = 3, customDimensionValue = "Ja"]); 2523 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2524 "Matomo-Integration - om_check_subs_jwot - user has premium access."); 2525 sessionStorage.setItem("hasResAccess", "true"); 2526 sessionStorage.setItem("hasPremiumAccess", "false"); 2527 let CheckPlus = false; 2528 for (let item of resAccess) { 2529 if (item.includes("Plus") || item.includes("plus")) { 2530 sessionStorage.setItem("hasPremiumAccess", "true"); 2531 } 2532 } 2533 } 2534 else { 2535 _paq.push(['setCustomDimension', customDimensionId = 3, customDimensionValue = "Nein"]); 2536 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2537 "Matomo-Integration - om_check_subs_jwot - user has no premium access."); 2538 sessionStorage.setItem("hasResAccess", "false"); 2539 } 2540 resolve(); 2541 } 2542 else { 2543 _paq.push(['setCustomDimension', customDimensionId = 3, customDimensionValue = "unbekannt - FF"]); 2544 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2545 "Matomo-Integration - om_check_subs_jwot - access unknown - Firefox."); 2546 resolve(); 2547 } 2548 } 2549 } 2550 }); 2551} 2552 2553// ***************************************** 2554// Login-Status ermitteln. 2555// Wenn der Login-Status schon im sessionStorage abgelegt ist, wird dieser genutzt. 2556// Andernfalls wird er neu ermittelt. 2557// ***************************************** 2558function om_check_logon_state() { 2559 return new Promise(function (resolve, reject) { 2560 if (sessionStorage.encUID && sessionStorage.encUID != "") { 2561 _paq.push(['setCustomDimension', customDimensionId = 2, customDimensionValue = "Ja"]); 2562 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2563 "Matomo-Integration - om_check_logon_state - User logged in.") 2564 resolve(true); 2565 } 2566 else{ 2567 var the_sso_URL = "https://sso.onetz.de/auth/logonstatus"; 2568 var xhr = new XMLHttpRequest(); 2569 xhr.open("POST", the_sso_URL); 2570 xhr.withCredentials = true; 2571 xhr.setRequestHeader("Content-Type", "application/json"); 2572 xhr.send(); 2573 xhr.onloadend = function () { 2574 var antw = JSON.parse(xhr.responseText); 2575 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2576 "Matomo-Integration - om_check_logon_state - Checking Logon_status..."); 2577 if (antw.code == 2100) { 2578 _paq.push(['setCustomDimension', customDimensionId = 2, customDimensionValue = "Nein"]); 2579 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2580 "Matomo-Integration - om_check_logon_state - User not logged in."); 2581 resolve(false); 2582 } 2583 else if (antw.code == 2000) { 2584 sessionStorage.setItem("uuid", antw.uuid); 2585 sessionStorage.setItem("encUID", btoa(antw.uuid)); 2586 _paq.push(['setCustomDimension', customDimensionId = 2, customDimensionValue = "Ja"]); 2587 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2588 "Matomo-Integration - om_check_logon_state - User logged in.") 2589 resolve(true); 2590 } 2591 }; 2592 } 2593 }); 2594} 2595 2596// ***************************************** 2597// Ãberprüft den Referrer auf Google-Discover-Traffic 2598// ***************************************** 2599function check_for_discover() { 2600 let art_id = getArtikelID(); 2601 let doc_ref = document.referrer || ""; 2602 doc_ref.toLowerCase(); 2603 let app_string = "android-app://"; 2604 var ref_string = ""; 2605 var evt_cat = ""; 2606 2607 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2608 "Matomo-Integration - check_for_discover - Checking for Google Discover."); 2609 2610 // ***************************************** 2611 // Referrer mit Suchmustern vergleichen - Google Discover
2612 // ***************************************** 2613 if (doc_ref.startsWith(app_string) == true && doc_ref.includes("com.google.android.googlequicksearchbox") == true) { 2614 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2615 "Matomo-Integration - check_for_discover - AppReferrer Google Discover found."); 2616 tp = window["tp"] || []; 2617 tp.push(["setCustomVariable", "google_discover", "true"]); 2618 ref_string = "Google Discover"; 2619 evt_cat = "AppReferrer"; 2620 } 2621 2622 // ***************************************** 2623 // Referrer mit Suchmustern vergleichen - Andere App z.B. Facebook oder LinkedIn-App 2624 // ***************************************** 2625 else if (doc_ref.startsWith(app_string) == true && doc_ref.includes("com.google.android.googlequicksearchbox") == false) { 2626 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2627 "Matomo-Integration - check_for_discover - Other AppReferrer: " + doc_ref); 2628 ref_string = doc_ref; 2629 evt_cat = "AppReferrer"; 2630 } 2631 2632 // **
2632*************************************** 2633 // Referrer mit Suchmustern vergleichen - Google Discover aber ohne die Android-App-Kennung 2634 // ***************************************** 2635 else if (doc_ref.startsWith(app_string) == false && doc_ref.includes("googlequicksearchbox") == true) { 2636 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2637 "Matomo-Integration - check_for_discover - Non Android Google Discover AppReferrer: " + doc_ref); 2638 ref_string = doc_ref; 2639 evt_cat = "AppReferrer - non Android"; 2640 } 2641 2642 // ***************************************** 2643 //Referrer mit Suchmustern vergleichen - kein App-Referrer 2644 // ***************************************** 2645 else { 2646 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2647 "Matomo-Integration - check_for_discover - No AppReferrer: " + doc_ref); 2648 if (doc_ref != "") { 2649 ref_string = doc_ref; 2650 } 2651 else { 2652 ref_string = "direct"; 2653 } 2654 evt_cat = "nosend"; 2655 } 2656 2657 // ***************************************** 2658 // Ãberprüfen, ob Matomo schon bereit ist. Wenn ja, wird ein entsprechendes Event an Matomo geschickt. 2659 // Wenn nein, wird alle 150ms überprüft, ob Matomo bereit ist. Nach 1,5 Sekunden wird abgebrochen. 2660 // ***************************************** 2661 if (typeof Matomo != "undefined") { 2662 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2663 "Matomo-Integration - check_for_discover - Matomo ready. Sending event: " + ref_string + " - " + evt_cat); 2664 if (evt_cat != "nosend") { 2665 let ref_track = Matomo.getAsyncTracker("https://matomo.oberpfalzmedien.de/matomo.php", 2); 2666 ref_track.trackEvent(evt_cat, ref_string, art_id); 2667 } 2668 } 2669 else { 2670 var mtm_int_count = 0; 2671 const mtm_interval = setInterval(function() { 2672 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2673 "Matomo-Integration - check_for_discover - Matomo not ready. Looping."); 2674 2675 if (typeof Matomo != "undefined") { 2676 clearInterval(mtm_interval); 2677 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2678 "Matomo-Integration - check_for_discover - Matomo finally ready. Sending event: " + ref_string + " - " + evt_cat); 2679 if (evt_cat != "nosend") { 2680 let ref_track = Matomo.getAsyncTracker("https://matomo.oberpfalzmedien.de/matomo.php", 2); 2681 ref_track.trackEvent(evt_cat, ref_string, art_id); 2682 } 2683 } 2684 else { 2685 if (mtm_int_count <= 9) { 2686 mtm_int_count ++; 2687 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 2688 "Matomo-Integration - check_for_discover - Matomo still not ready. Looping."); 2689 } 2690 else { 2691 clearInterval(mtm_interval); 2692 console.warn("%c4855048", "background-color:darkolivegreen; color:white;", 2693 "Matomo-Integration - check_for_discover - Matomo still not ready. Event skipped."); 2694 } 2695 } 2696 }, 150); 2697 } 2698 return; 2699} 2700 2701 2702// ***************************************** 2703// Matomo-Integration 2704// ***************************************** 2705 2706var _paq = window._paq = window._paq || []; 2707 2708// ***************************************** 2709// Erfolgt der Seitenaufruf aus einer App 2710// ***************************************** 2711var is_app = 'Start'; 2712if (navigator.userAgent.toLowerCase().indexOf("_onetz_app") > -1) { 2713 is_app = 'Newsapp'; 2714} 2715else if (location.search.includes("clientVersion=Oberpfalz")) { 2716 is_app = 'E-Paper'; 2717} 2718else { 2719 is_app = 'Nein'; 2720} 2721 2722// ***************************************** 2723// Matomo - Grundkonfiguration 2724// ***************************************** 2725_paq.push(["setCookieDomain", "*.onetz.de"]); 2726_paq.push(["setExcludedQueryParams", ["_gb_c", "gb_clk", "appview", "client_id", "redirect_uri", "destination", "tslg", 2727 "doi_success_redirect", "email", "camp_id", "pnespid", "udid", "clientVersion", "code", "google_preview", "iu", 2728 "gdfp_req", "lineItemId", "creativeId", "del_user", "aboNo", "cx_testId", "cx_testVariant", "cx_artPos", "cx_experienceId", 2729 "response_type", "fr", "region", "deviceType", "deviceLocale", "os", "cx_experienceA
2729ctionId"]]); 2730_paq.push(['setCustomDimension', customDimensionId = 1, customDimensionValue = is_app]); 2731 2732// ***************************************** 2733// Ãberprüfung ob es sich um einen Premium-Artikel handelt. 2734// ***************************************** 2735var json_ld; 2736if (typeof $('script[type="application/ld+json"]').html() != "undefined") { 2737 json_ld = JSON.parse($('script[type="application/ld+json"]').html()); 2738 if (json_ld.isAccessibleForFree === "false") { 2739 _paq.push(['setCustomDimension', customDimensionId = 5, customDimensionValue = "Premium"]); 2740 console.log("%c4855048", "background-color:darkolivegreen; color:white;", "Matomo-Integration - premium article."); 2741 } 2742 else { 2743 _paq.push(['setCustomDimension', customDimensionId = 5, customDimensionValue = "Free"]); 2744 console.log("%c4855048", "background-color:darkolivegreen; color:white;", "Matomo-Integration - free article."); 2745 } 2746} 2747else { 2748 console.log("%c4855048", "background-color:darkolivegreen; color:white;", "Matomo-Integration - JSON+LD not found."); 2749} 2750 2751_paq.push(['enableHeartBeatTimer', 5]); 2752_paq.push(['trackPageView']); 2753_paq.push(['enableLinkTracking']); 2754 2755// ***************************************** 2756// Das Matomo-Skript wird nach einigen Ãberprüfungen integriert. 2757// om_check_logon_state() prüft den Login-Status. 2758// om_check_subs_jwot() prüft bei eingeloggten Nutzern den Abo-Status. 2759// Nach den Ãberprüfungen wird der Grundcode von Matomo eingefügt. 2760// om_get_mail_addr() stellt die Mail-Adresse für Checkout-Funktionen zur Verfügung. 2761// ***************************************** 2762om_check_logon_state() 2763 .then((logon_state_tf) => { 2764 if (logon_state_tf === true) { 2765 return om_check_subs_jwot(); 2766 } 2767 else { 2768 return; 2769 } 2770 }) 2771 .then(() => { 2772 var u = "https://matomo.oberpfalzmedien.de/"; 2773 _paq.push(['setTrackerUrl', u + 'matomo.php']); 2774 _paq.push(['setSiteId', '2']); 2775 console.log("%c4855048", "background-color:darkolivegreen; color:white;", "Matomo-Integration - Tracking initalized"); 2776 var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; 2777 g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s); 2778 }) 2779 .then(() => { 2780 if ((sessionStorage.encUID && sessionStorage.encUID != "") && !sessionStorage.encMail) { 2781 console.log("%c4855048", "background-color:darkolivegreen; color:white;", "Matomo-Integration - Session-Storage - UUID found"); 2782 return om_get_mail_addr(atob(sessionStorage.encUID)); 2783 } 2784 else if (sessionStorage.encMail) { 2785 console.log("%c4855048", "background-color:darkolivegreen; color:white;", "Matomo-Integration - Session-Storage - email found"); 2786 return; 2787 } 2788 else { 2789 console.log("%c4855048", "background-color:darkolivegreen; color:white;", "Matomo-Integration - Session-Storage - unknown user"); 2790 return; 2791 } 2792 }) 2793 .then(() => { 2794 //Ãberprüfe den Referrer der Seite, ob diese von Google Discover (oder einer anderen App) aufgerufen wurde. 2795 check_for_discover(); 2796 return; 2797 }) 2798 .then(() => { 2799 //Ãberprüfe den Referrer der Seite, ob diese von Google Discover (oder einer anderen App) aufgerufen wurde. 2800 setCustomDimensions(); 2801 return; 2802 }); 2803 2804</script>
2804<noscript> 2805 2806<p><img src="https://matomo.oberpfalzmedien.de/matomo.php?idsite=2&rec=1" style="border:0;" alt="" /></p> 2807 2808</noscript><!-- End Matomo Code -->
2808<script data-cmp-ab="2" data-cmp-vendor="c21267"> 2809 2810// ***************************************** 2811// Zusätzliche Messpunkte für Matomo 2812// ***************************************** 2813 2814// ***************************************** 2815// Scrolltiefenmessung - Start 2816// Die Scrolltiefe wird mit Hilfe von Intersection Observern gemessen. 2817// ***************************************** 2818let scrollMarker = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]; 2819let scrollMarker_Artikel = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]; 2820 2821// ***************************************** 2822// Sende gemessene Scrolltiefe an Matomo, passe Markerliste an und setze den Marker. 2823// ***************************************** 2824function sendScrollData(scrolldepth, marker, scrollMarkerArr, trackedBody) { 2825 let artikel_id = getArtikelID(); 2826 2827 while (marker <= scrolldepth) { 2828 let depth_track = Matomo.getAsyncTracker("https://matomo.oberpfalzmedien.de/matomo.php", 2); 2829 depth_track.trackEvent('Scrolltiefe', marker + ' Prozent (' + trackedBody + ')', artikel_id, marker); 2830 console.log("Scrolltiefe: " + marker + " Prozent; ID: " + artikel_id + "; Messung: " + trackedBody); 2831 scrollMarkerArr.shift(); 2832 marker = scrollMarkerArr[0]; 2833 } 2834 return scrollMarkerArr; 2835} 2836 2837// ***************************************** 2838// Hole die Scrolltiefe eines übergebenen Elements. 2839// ***************************************** 2840 function getScrollDepth(child, parent) { 2841 let scrollTopC = child.getBoundingClientRect().bottom + window.scrollY; 2842 let scrollTopP = parent.getBoundingClientRect().top + window.scrollY; 2843 let scrollTopDif = scrollTopC - scrollTopP; 2844 let parentHeight = parent.scrollHeight; 2845 let result = (scrollTopDif / parentHeight) * 100; 2846 return Math.round(result / 10) * 10; 2847 } 2848 2849// ***************************************** 2850// Wenn ein beobachtetes Element im Viewport auftaucht, löse den Callback des Observers aus. 2851// ***************************************** 2852function observerCallback(entries, observer) { 2853 entries.forEach((entry) => { 2854 if (entry.isIntersecting === true) { 2855 let parent = document.getElementsByTagName("main")[0]; 2856 let child = entry.target; 2857 let scrolldepth = getScrollDepth(child, parent); 2858 2859 scrollMarker = sendScrollData(scrolldepth, scrollMarker[0], scrollMarker, "Seitenlänge"); 2860 observer.unobserve(entry.target); 2861 } 2862 }); 2863} 2864 2865// ***************************************** 2866// Wenn ein beobachtetes Element im Viewport auftaucht, löse den Callback des Observers für Artikel aus. 2867// ***************************************** 2868function observerCallback_Article(entries, observer) { 2869 entries.forEach((entry) => { 2870 if (entry.isIntersecting === true) { 2871 let scrollRelationElement = document.getElementsByClassName("pane-node-content")[0]; 2872 let scrolldepth = getScrollDepth(entry.target, scrollRelationElement); 2873 scrollMarker_Artikel = sendScrollData(scrolldepth, scrollMarker_Artikel[0], scrollMarker_Artikel, "Artikellänge"); 2874 observer.unobserve(entry.target); 2875 } 2876 }); 2877} 2878 2879// ***************************************** 2880// Sobald die Seite fertig geladen ist, werden die Objekte vorbereitet, die für die Scrolltiefenmessung relevant sind. 2881// Darüber hinaus werden Klicktracker eingerichtet. Aller Tracker arbeiten komplett anonym. 2882// Seitenlänge und Artikellänge werden getrennt gemessen. 2883// ***************************************** 2884window.onload = function () { 2885 2886 // ***************************************** 2887 // warte 750ms damit die panels_pane Klassen geladen werden können. 2888 // ***************************************** 2889 setTimeout(() => { 2890 let elementsToTrack = document.querySelectorAll("h1, h2, h3, h4, p, img, iframe, ul, form, glomex-integration, tab"); 2891 let observer = new IntersectionObserver(observerCallback, { 2892 root: null, 2893 rootMargin: "0px 0px 0px 0px", 2894 threshold: 1.0 2895 }); 2896 2897 // ***************************************** 2898 // Observer für die einzelnen HTML-Elemente anlegen. 2899 // ***************************************** 2900 elementsToTrack.forEach(element => { 2901 observer.observe(element); 2902 }); 2903 2904 // ***************************************** 2905 // Observer für den Inhaltsbereich von Artikeln anlegen. 2906 // ***************************************** 2907 if (document.getElementsByClassName("pane-node-content")[0]) { 2908 let articleElement = document.getElementsByClassName("pane-node-content")[0]; 2909 let elementsToTrack_Article = articleElement.querySelectorAll("h1, h2, h3, h4, p, img, iframe, ul, form, glomex-integration, tab"); 2910 let observer_Article = new IntersectionObserver(observerCallback_Article, { 2911 root: null, 2912 rootMargin: "0px 0px 0px 0px", 2913 threshold: 1.0 2914 }); 2915 2916 elementsToTrack_Article.forEach(element => { 2917 observer_Article.observe(element); 2918 }); 2919 } 2920 2921 // ***************************************** 2922 // Observer für das nachladende Outbrain-Element anlegen. 2923 // ***************************************** 2924 if (document.getElementsByClassName(".OUTBRAIN")) { 2925 let mutObserver = new MutationObserver((mutationsList, mutObserver) => { 2926 for (let mutation of mutationsList) { 2927 for (let node of mutation.addedNodes) { 2928 if (node.matches && node.matches('.OUTBRAIN')) { 2929 observer.observe(node); 2930 } 2931 } 2932 } 2933 }); 2934 2935 mutObserver.observe(document.body, { childList: true, subtree: true }); 2936 } 2937 2938 if (document.getElementById("footer")) { 2939 let footer = document.getElementById("footer"); 2940 let observer_Footer = new IntersectionObserver(observerCallback, { 2941 root: null, 2942 rootMargin: "0px 0px 0px 0px", 2943 threshold: 1.0 2944 }); 2945 observer_Footer.observe(footer); 2946 } 2947 }, 750);
2948 // ***************************************** 2949 // Scrolltiefenmessung - Ende 2950 // ***************************************** 2951 2952 // ***************************************** 2953 // Menü Klicktracking - Start 2954 // Kein Klicktracking in der App. 2955 // ***************************************** 2956 if (is_app === "Nein") { 2957 2958 // ***************************************** 2959 // Klickevent an Matomo übermitteln. 2960 // ***************************************** 2961 function log_click(clickedMenu, eventTextContent) { 2962 let matomo_phpURL = "https://matomo.oberpfalzmedien.de/matomo.php"; 2963 let menu_click_track = Matomo.getAsyncTracker(matomo_phpURL, 2); 2964 menu_click_track.trackEvent('Menüklicks', clickedMenu, eventTextContent, 1); 2965 console.info("%c4855048", "background-color:darkolivegreen; color:white;", 2966 "Matomo-Integration - " + clickedMenu + " clicked - " + eventTextContent); 2967 } 2968 2969 // ***************************************** 2970 // Klicktracking - oberes Menü 2971 // ***************************************** 2972 (function () { 2973 let pElements = document.getElementById("block-menu-menu-servicelinks"); 2974 pElements = pElements.getElementsByTagName("ul"); 2975 for (let cElement of pElements[0].getElementsByTagName("li")) { 2976 cElement.addEventListener('click', log_click_service_menu_right); 2977 } 2978 })(); 2979 2980 function log_click_service_menu_right(event) { 2981 let clickedMenu = 'Servicemenü'; 2982 log_click(clickedMenu, event.target.textContent); 2983 } 2984 2985 // ***************************************** 2986 // Klicktracking - Burger-Menü 2987 // ***************************************** 2988 (function () { 2989 let pElements = document.getElementById("block-menu-primary-links"); 2990 pElements = pElements.getElementsByTagName("ul"); 2991 for (let cElement of pElements[0].getElementsByTagName("li")) { 2992 if (!cElement.classList.contains("expanded")) { 2993 cElement.addEventListener('click', log_click_primary_menu); 2994 } 2995 } 2996 })(); 2997 2998 function log_click_primary_menu(event) { 2999 let clickedMenu = 'Hauptmenü'; 3000 log_click(clickedMenu, event.target.textContent); 3001 } 3002 3003 // ***************************************** 3004 // Klicktracking - Logo 3005 // ***************************************** 3006 (function () { 3007 let logo_icon = document.getElementById("front-header"); 3008 logo_icon.addEventListener('click', log_click_logo_icon); 3009 })(); 3010 3011 function log_click_logo_icon(event) { 3012 let clickedMenu = 'Logo'; 3013 log_click(clickedMenu, event.target.textContent); 3014 } 3015 3016 // ***************************************** 3017 // Klicktracking - Header Menü 3018 // ***************************************** 3019 (function () { 3020 var pElements = document.getElementById("block-dnt_custom_content_displays-3"); 3021 pElements = pElements.getElementsByTagName("ul"); 3022 3023 for (let cElement of pElements[0].getElementsByTagName("li")) { 3024 if (cElement.getElementsByTagName("a").length > 0) { 3025 let aTagElement = cElement.getElementsByTagName("a"); 3026 aTagElement[0].addEventListener('click', log_click_header_menu); 3027 } 3028 else { 3029 if (cElement.classList.contains("navbar-element-hamburger")) { 3030 cElement.addEventListener('click', log_click_header_menu); 3031 } 3032 } 3033 } 3034 })(); 3035 3036 function log_click_header_menu(event) { 3037 let clickedMenu = 'Header-Menü'; 3038 let clk_text = event.target.textContent.trim(); 3039 if (clk_text) { 3040 clk_text = "Menü"; 3041 } 3042 log_click(clickedMenu, clk_text); 3043 } 3044 3045 // ***************************************** 3046 // Klicktracking - Contentmodule 3047 // Die Liste der Content-Modul-IDs muss bei Ãnderungen an den ausgespielten Content-Modulen angepasst werden. 3048 // ***************************************** 3049 3050 function log_click_content_module(event) { 3051 let parentID = this.closest('[id^="cxense-"]').id; 3052 let content_module_id = parentID.substring("cxense-".length); 3053 let content_module_track = Matomo.getAsyncTracker("https://matomo.oberpfalzmedien.de/matomo.php", 2); 3054 let pageTitle = document.querySelector('[class^=title]'); 3055 3056 if (pageTitle != null) { 3057 content_module_track.trackEvent('Contentklick', pageTitle.textContent, content_module_id, 1); 3058 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 3059 "Matomo-Integration - Contentmodul clicked: " + content_module_id + "; Title: " + pageTitle.textContent); 3060 } 3061 else { 3062 content_module_track.trackEvent('Contentklick', 'Homepage', content_module_id, 1); 3063 console.log("%c4855048", "background-color:darkolivegreen; color:white;", 3064 "Matomo-Integration - Contentmodul clicked: " + content_module_id + "; Title: Homepage"); 3065 } 3066 } 3067 3068 (function () { 3069 /* IDs der zu trackenden Contentmodule anhand der Modul Widget ID: 3070 AUFMACHER - HOME - REGULARS - AUTO // b4b0bc52b385aa157967f5a218280221f91c4931 3071 AUFMACHER - HOME - REGULARS - AUTO - CLTC 60PLUS // 71857695a6e20799c5c854c54d4cfef5c0e9af30 3072 AUFMACHER - HOME - FLYBYS - AUTO OPTIMIZED // dd25fac26f73b9e9ca324a6c80d18d89ce8ae1aa 3073 AUFMACHER - HOME - FLYBYS - CLTC 60PLUS // 859ee0bf4c9ac1c9c18787ce1eaae5274acb4e67 3074 HOME 4X2 EMPFEHLUNGEN FÃR SUBSCRIBER // facf66a7f99861c979c78c44d829151ee6cc331f 3075 HOME 4X2 EMPFEHLUNGEN FÃR REGULAR // 3ee1cb3d579f909ae1600d91e1ef62be890a56bd 3076 HOME 4X2 EMPFEHLUNGEN FÃR FLYBYS // b464a0c4c5f8156abbc5f76005f44f733d3a2432 3077 HOME 4X2 EMPFEHLUNGEN FÃR REGULAR CLTC // c43163da39bb90130bd156024c44ab70c96ccd0b 3078 HOME 4X2 EMPFEHLUNGEN FÃR FLYBYS CLTC // 56ea8a69fed8411a66129f3a601f89447020f34c 3079 BAYERN - ÃBERSICHTSSEITE - OHNE TEASER - 2X4 // 46b086a94629ff2e98cfdd600bcf4783de783f21 3080 SPORT - ALLGEMEIN - ÃBERSICHTSSEITE - OHNE TEASER - 2X4 // b05c9316661987c5fc74416a6a6fefcfb8ce2d2c 3081 Aufmacher - Home - Auto - AB-Test 2026 // 25427cee0c1768c2cfd62ee52c95472874083301 3082 */ 3083 let content_module = [ 3084 "b4b0bc52b385aa157967f5a218280221f91c4931", 3085 "71857695a6e20799c5c854c54d4cfef5c0e9af30", 3086 "dd25fac26f73b9e9ca324a6c80d18d89ce8ae1aa", 3087 "859ee0bf4c9ac1c9c18787ce1eaae5274acb4e67", 3088 "facf66a7f99861c979c78c44d829151ee6cc331f", 3089 "3ee1cb3d579f909ae1600d91e1ef62be890a56bd", 3090 "b464a0c4c5f8156abbc5f76005f44f733d3a2432", 3091 "c43163da39bb90130bd156024c44ab70c96ccd0b", 3092 "56ea8a69fed8411a66129f3a601f89447020f34c", 3093 "46b086a94629ff2e98cfdd600bcf4783de783f21", 3094 "b05c9316661987c5fc74416a6a6fefcfb8ce2d2c", 3095 "25427cee0c1768c2cfd62ee52c95472874083301" 3096 ]; 3097 3098 for (let contentID of content_module) {
3099 let item_by_id = document.getElementById("cxense-" + contentID); 3100 if (item_by_id != undefined) { 3101 for (let a_tag of item_by_id.getElementsByTagName("a")) { 3102 a_tag.addEventListener('click', log_click_content_module); 3103 } 3104 } 3105 } 3106 })(); 3107 // ***************************************** 3108 // Ende der Klicktracker. 3109 // ***************************************** 3110 } 3111} 3112</script>
3112 </div> 3113 3114 3115</article> <!-- /.node --> 3116 </div> 3117 3118 3119 3120 </div> 3121<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node dm-nobg" > 3122 3123 3124 3125 <div class="pane-content"> 3126 3127 <article id="node-4309331" class="node node-type-thing build-mode-full clearfix "> 3128 3129 3130 3131 3132 <div class="content"> 3133
3133<script> 3134function om_app_sitelogin(dest_url) { 3135console.log("%com_app_sitelogin","background-color:red; color:white","om_app_sitelogin() called!"); 3136console.log("%com_app_sitelogin","background-color:red; color:white","URL passed to the function: "+dest_url ); 3137 window.location = 'https://' + window.location.hostname + '/user/login?destination=' + dest_url; 3138return "Done!"; 3139} 3140</script>
3140 </div> 3141 3142 3143</article> <!-- /.node --> 3144 </div> 3145 3146 3147 3148 </div> 3149<div class="panel-region-separator"></div><div class="panels_pane panel-pane pane-node dm-nobg" > 3150 3151 3152 3153 <div class="pane-content"> 3154 3155 <article id="node-5033586" class="node node-type-thing build-mode-full clearfix "> 3156 3157 3158 3159 3160 <div class="content"> 3161 3162<p>
3162<script> 3163// ***************************************** 3164// Trackt die einzelnen Stufen im Piano Checkout-Prozess. 3165// Piano-VX übermittelt in den einzelnen Stufen Message-Events. Für diese werden hier entsprechende Event-Handler angelegt. 3166// Die Event-Handler propagieren die Events dann entsprechend in Richtung DMP und Matomo. 3167// Zusätzlich sind die Funktionen integriert, die für die Vermarktung durch Sovendus und Jurodo nötig sind. 3168// ***************************************** 3169 3170// ***************************************** 3171// Sovendus-Integration - Teil 1 - Start 3172// ***************************************** 3173// Ãberprüfen, ob die URL einen Sovendus-Tracking-Parameter enthält. Wenn ja, wird dieser als Sessionvariable - sovReqToken - gespeichert 3174// und im Teil 2 des Skripts für das erstellen des Conversion-Tracking-Pixels verwendet. Wenn der Token bereits verwendet wurde, wurde in 3175// Teil 2 die Sessionvariable - sovReqTokenDel - gesetzt. Auf diese wird hier geprüft und dann der Sovendus-Parameter aus der URL entfernt. 3176// Dieser ist auch nach dem neu Laden normalerweise noch vorhanden, darf aber nicht mehr genutzt werden. AnschlieÃend wird auch die 3177// Sessionvariable - sovReqTokenDel - entfernt. Wird die Seite verlassen, werden die Sessionvariablen entfernt. Spätere Conversions während 3178// der selben Session werden damit nicht mehr Sovendus zugeschrieben. 3179// ***************************************** 3180 3181function sov_cleanup (url_parameter) { 3182 console.log ("%c5033586 - Sovendus - Sec 1", "background-color:red; color: white;", "sov_cleanup running."); 3183 if (sessionStorage.sovReqToken) { 3184 sessionStorage.removeItem("sovReqToken"); 3185 } 3186 if (url_parameter.get("sovReqToken") != null) { 3187 url_parameter.delete("sovReqToken"); 3188 var url_path = ""; 3189 (url_parameter.size > 0)? url_path = location.pathname + "?" + url_parameter : url_path = location.pathname; 3190 const new_url = new URL(location.protocol + '//' + location.host + url_path); 3191 console.log ("%c5033586 - Sovendus - Sec 1", "background-color:red; color: white;", "New URL: "+new_url); 3192 window.history.replaceState({},document.title,new_url ); 3193 } 3194} 3195 3196var url_parameter = new URL(location.href).searchParams; 3197 3198if (url_parameter.get("sovReqToken") != null) { 3199 if (!sessionStorage.sovReqTokenDel) { 3200 var sovReqToken = url_parameter.get("sovReqToken"); 3201 sessionStorage.setItem("sovReqToken", sovReqToken); 3202 console.log ("%c5033586 - Sovendus - Sec 1", "background-color:red; color: white;", "Sovendus token found and stored: "+ sovReqToken); 3203 } 3204 else { 3205 console.log ("%c5033586 - Sovendus - Sec 1", "background-color:red; color: white;", 3206 "Sovendus token already used. Removing parameter from storage and URL."); 3207 sov_cleanup (url_parameter); 3208 } 3209} 3210 3211if (url_parameter.get("sovReqToken") == null && sessionStorage.sovReqTokenDel == true) { 3212 url_parameter.delete("sovReqTokenDel"); 3213 console.log ("%c5033586 - Sovendus - Sec 1", "background-color:red; color: white;", "Old sovReqTokenDel found and removed"); 3214} 3215 3216window.addEventListener("unload", function() { 3217 if (sessionStorage.sovReqToken) { 3218 sessionStorage.removeItem("sovReqToken"); 3219 console.log ("%c5033586 - Sovendus - Sec 1", "background-color:red; color: white;", "sovReqToken removed from storage"); 3220 } 3221 else { 3222 console.log ("%c5033586 - Sovendus - Sec 1", "background-color:red; color: white;", "No sovReqToken stored"); 3223 } 3224 console.log ("%c5033586 - Sovendus - Sec 1", "background-color:red; color: white;", "Page exit cleanup done"); 3225}); 3226// ***************************************** 3227// Sovendus-Integration - Teil 1 - Ende 3228// ***************************************** 3229 3230// ***************************************** 3231// tp-(Piano Composer)- und cX-(Piano DMP)-Objekte vorbereiten und die Grundkonfiguration anlegen. 3232// ***************************************** 3233tp = window["tp"] || []; 3234var cX = window.cX = window.cX || {}; 3235cX.callQueue = cX.callQueue || []; 3236 3237if (window.cX && window.cX.callQueue) { 3238 console.log ("%c5033586 - cX init", "background-color:red; color: white;", "cX object created"); 3239 cX.callQueue.push(['setEventAttributes', { origin: 'leb-website', persistedQueryId: '2f6954c69235367df5b29db7e308695ae60929b7' }]); 3240} 3241 3242// ***************************************** 3243// Ermitteln, ob das Checkout Event auf einer Landingpage oder auf einem Artikel erzeugt wird. 3244// ***************************************** 3245var checkout_art_id = ""; 3246var event_name = ""; 3247var cx_event_page = ""; 3248 3249var seiten_url = window.location; 3250seiten_url = seiten_url.toString(); 3251 3252var new_reg_exp = /id\d{7}/; //URL enthält eine Artikel-ID die mit id beginnt.
3253var checkout_art_id = seiten_url.match(new_reg_exp); 3254var skip_jurodo = false; 3255 3256if (checkout_art_id === null) { 3257 new_reg_exp = /d\d{7}/; //URL enthält eine Artikel-ID die nur mit d beginnt. 3258 checkout_art_id = seiten_url.match(new_reg_exp); 3259 if (checkout_art_id === null) { 3260 checkout_art_id = seiten_url; 3261 if (seiten_url.includes("_upgrades")) { 3262 event_name = "Checkout Events - Landingpage - Upgrades"; 3263 cx_event_page = "LP Upgrades"; 3264 skip_jurodo = true; 3265 } 3266 else if (seiten_url.includes("_angebote")) { 3267 event_name = "Checkout Events - Landingpage - Angebote"; 3268 cx_event_page = "LP Angebote"; 3269 } 3270 else if (seiten_url.includes("_winback")) { 3271 event_name = "Checkout Events - Landingpage - Winback"; 3272 cx_event_page = "LP Winback"; 3273 skip_jurodo = true; 3274 } 3275 else if (seiten_url.includes("_promo")) { 3276 event_name = "Checkout Events - Landingpage - Promo"; 3277 cx_event_page = "LP Promo"; 3278 skip_jurodo = true; 3279 } 3280 else if (seiten_url.includes("_sovendus")) { 3281 event_name = "Checkout Events - Landingpage - Sovendus"; 3282 cx_event_page = "LP Sovendus"; 3283 skip_jurodo = true; 3284 } 3285 else if (seiten_url.includes("_jurodo")) { 3286 event_name = "Checkout Events - Landingpage - Jurodo"; 3287 cx_event_page = "LP Jurodo"; 3288 skip_jurodo = false; 3289 } 3290 else if (seiten_url.includes("_blackfriday")) { 3291 event_name = "Checkout Events - Landingpage - Black Friday"; 3292 cx_event_page = "LP Blackfriday"; 3293 skip_jurodo = false; 3294 } 3295 else if (seiten_url.includes("_test_lp")) { 3296 event_name = "Checkout Events - Landingpage - Test"; 3297 cx_event_page = "LP Test"; 3298 } 3299 else if (seiten_url.includes("plus") === true && seiten_url.includes("plus_") === false && seiten_url.includes("onetzplus") === false ) { 3300 event_name = "Checkout Events - Landingpage - Plus"; 3301 cx_event_page = "LP Plus"; 3302 } 3303 else { 3304 event_name = "Checkout Events - Landingpage - Andere"; 3305 cx_event_page = "LP Andere"; 3306 } 3307 } 3308 else { 3309 checkout_art_id = checkout_art_id.toString(); 3310 checkout_art_id = checkout_art_id.substring(1); 3311 event_name = "Checkout Events - Article"; 3312 cx_event_page = "Article"; 3313 } 3314} 3315else { 3316 checkout_art_id = checkout_art_id.toString(); 3317 checkout_art_id = checkout_art_id.substring(2); 3318 event_name = "Checkout Events - Article"; 3319 cx_event_page = "Article"; 3320} 3321console.log ("%c5033586 - "+ event_name, "background-color:red; color: white;", "Page: " + checkout_art_id); 3322 3323// ***************************************** 3324// Den Query-String der URL auf den GCLID-Parameter überprüfen. 3325// Falls dieser gefunden wird, wird an Matomo und die DMP ein entsprechendes Event geschickt. 3326// ***************************************** 3327const searchParams = new URLSearchParams(window.location.search); 3328if ( searchParams.has('gclid')){ 3329 console.log ("%c5033586 - Promo Event", "background-color:red; color: white;", "GCLID found"); 3330 3331 //Ãberprüfen, ob Matomo schon bereit ist. Wenn ja, wird ein entsprechendes Event an Matomo geschickt. 3332 //Wenn nein, wird ein Interval mit max. 15 Wiederholungen gestartet. 3333 if (typeof Matomo != "undefined") { 3334 console.log ("%c5033586 - Promo Event", "background-color:red; color: white;", "Sending gclid found event."); 3335 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3336 mtm_checkout_event.trackEvent("Promo Event", "gclid found", checkout_art_id, 1); 3337 } 3338 else { 3339 console.log("%c5033586 - Promo Event", "background-color:red; color:white;", "Matomo not ready. Starting interval."); 3340 var matChkIntCnt = 0; 3341 const matChkInt= setInterval(() => { 3342 if (typeof Matomo != "undefined") { 3343 clearInterval(matChkInt); 3344 console.log ("%c4879507 - Promo Event", "background-color:red; color: white;", "Tracking gclid found event."); 3345 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3346 mtm_checkout_event.trackEvent("Promo Event", "gclid found", checkout_art_id, 1); 3347 } 3348 else if (typeof Matomo == "undefined" && matChkIntCnt >= 15) { 3349 console.log ("%c5033586 - Promo Event", "background-color:red; color: white;", "Looped 15 times - Skipping Matomo Event."); 3350 clearInterval(matChkInt); 3351 } 3352 else if (typeof Matomo == "undefined" && matChkIntCnt < 15) { 3353 console.log("%c5033586 - Promo Event", "background-color:red; color:white;", "Matomo not ready. Counting... " + matChkIntCnt); 3354 matChkIntCnt ++; 3355 } 3356 }, 100); 3357 } 3358 3359 cX.callQueue.push(['sendEvent','om_promo_event',{evt_action: "gclid found", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3360 {'callback': function(result) { 3361 console.log ("%c5033586 - Promo Event cX", "background-color:red; color: white;", "Promo event - gclid found - response: " + result.httpStatus); 3362 } 3363 }]); 3364} 3365 3366// ***************************************** 3367// Piano-VX Checkout-Callback-Eventhandler 3368// Jedes Callback-Event löst ein DMP und ein Matomo-Event aus. 3369// ***************************************** 3370// Custom-Events sind im Checkout manuell ausgelöste Events. 3371// ***************************************** 3372tp.push(["addHandler", "checkoutCustomEvent", function(event) { 3373 console.log ("%c5033586 - "+ event_name, "background-color:red; color: white;", "checkoutCustomEvent: " + event.eventName); 3374 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3375 3376 switch(event.eventName) { 3377 case "just_login": 3378 mtm_checkout_event.trackEvent(event_name, "CustomEvent - just login", checkout_art_id, 1); 3379 3380 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "just_login", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3381 {'callback': function(result) { 3382 console.log ("%c4879507 - cX event", "background-color:red; color: white;", "cX Event - just_login: " + result.httpStatus); 3383 } 3384 }]); 3385 break; 3386 case "payment_paypal": 3387 break; 3388 case "payment_stripe": 3389 break; 3390 case "payment_other": 3391 break; 3392 } 3393}]); 3394 3395// ***************************************** 3396// Wird ausgelöst sobald ein Angebot angezeigt wird. 3397// ***************************************** 3398tp.push(["addHandler", "showOffer", function(offerParams) { 3399 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3400 mtm_checkout_event.trackEvent(event_name, "showOffer", checkout_art_id, 1); 3401 3402 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "showOffer", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3403 {'callback': function(result) { 3404 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - showOffer: " + result.httpStatus); 3405 } 3406 }]); 3407 3408 var modal_list = document.getElementsByClassName("tp-modal"); 3409 for (x in modal_list) { 3410 modal_list[x].classList.add("tp-modal-centered"); 3411 } 3412}]); 3413 3414// ***************************************** 3415// Wird ausgelöst sobald ein Kaufvorgang gestartet wird. 3416// ***************************************** 3417tp.push( [ "addHandler", "startCheckout", function () { 3418 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3419 mtm_checkout_event.trackEvent(event_name, "startCheckout", checkout_art_id, 1); 3420 3421 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "startCheckout", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3422 {'callback': function(result) { 3423 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - startCheckout: " + result.httpStatus); 3424 } 3425 }]); 3426 3427 var modal_list = document.getElementsByClassName("tp-modal"); 3428 for (x in modal_list){ 3429 modal_list[x].classList.add("tp-modal-centered"); 3430 } 3431}]); 3432 3433// ***************************************** 3434// Wird ausgelöst sobald eine Zahlungsübermittlung gestartet wird. 3435// ***************************************** 3436tp.push( [ "addHandler", "submitPayment", function (data) { 3437 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3438 mtm_checkout_event.trackEvent(event_name, "submitPayment", checkout_art_id, 1); 3439 3440 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "submitPayment", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3441 {'callback': function(result) { 3442 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - submitPayment: " + result.httpStatus); 3443 } 3444 }]); 3445}]); 3446 3447// ***************************************** 3448// Wird ausgelöst nachdem State 2 erreicht wurde und der Term sicher bekannt ist. 3449// ***************************************** 3450tp.push(["addHandler", "checkoutSelectTerm", function(termDetails, iframeId) { 3451 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3452 mtm_checkout_event.trackEvent(event_name, "checkoutSelectTerm - " + termDetails.termName, checkout_art_id, 1); 3453 3454 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "checkoutSelectTerm", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3455 {'callback': function(result) { 3456 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - checkoutSelectTerm: " + result.httpStatus); 3457 } 3458 }]); 3459}]); 3460 3461 3462// ***************************************** 3463// Ãberwacht verschiedene Schritte innerhalb des Checkout-Prozesses. 3464// ***************************************** 3465tp.push(["addHandler", "checkoutStateChange", function(event) { 3466 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3467 console.log ("%c5033586 - "+ event_name, "background-color:red; color: white;", "checkoutStateChange: " + JSON.stringify(event.stateName) ); 3468 switch (event.stateName) { 3469 case "offer": 3470 //mtm_checkout_event.trackEvent(event_name, "checkoutStateChange - " + event.stateName, checkout_art_id, 1); 3471 break; 3472 3473 case "state1": 3474 mtm_checkout_event.trackEvent(event_name, "checkoutStateChange - " + event.stateName, checkout_art_id, 1); 3475 3476 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "StateChange_State_1", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3477 {'callback': function(result) { 3478 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - StateChange_State_1: " + result.httpStatus); 3479 } 3480 }]); 3481 break; 3482 3483 case "state2": 3484 document.getElementsByClassName("tp-modal")[0].classList.add("tp-modal-centered"); 3485 mtm_checkout_event.trackEvent(event_name, "checkoutStateChange - " + event.stateName, checkout_art_id, 1); 3486 3487 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "StateChange_State_2", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3488 {'callback': function(result) { 3489 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - StateChange_State_2: " + result.httpStatus); 3490 } 3491 }]); 3492 3493 if (sessionStorage.encMail){ 3494 window.PianoESP && "function" == typeof window.PianoESP.handleUserDataPromise && window.PianoESP.handleUserDataPromise({ 3495 email: atob(sessionStorage.encMail), 3496 squads: [11338] 3497 }); 3498 } 3499 break; 3500 3501 case "alreadyHasAccess": 3502 mtm_checkout_event.trackEvent(event_name, "checkoutStateChange - " + event.stateName, checkout_art_id, 1); 3503 3504 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "alreadyHasAccess", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3505 {'callback': function(result) { 3506 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - alreadyHasAccess: " + result.httpStatus); 3507 } 3508 }]); 3509 break; 3510 3511 case "confirmation": 3512 mtm_checkout_event.trackEvent(event_name, "checkoutStateChange - " + event.stateName, checkout_art_id, 1); 3513 3514 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "confirmation", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3515 {'callback': function(result) { 3516 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - confirmation: " + result.httpStatus); 3517 } 3518 }]); 3519 break; 3520 3521 case "receipt": 3522 mtm_checkout_event.trackEvent(event_name, "checkoutStateChange - " + event.stateName, checkout_art_id, 1); 3523 3524 3525 // ***************************************** 3526 // Sovendus-Integration - Teil 2 - Start 3527 // ***************************************** 3528 // Wenn ein Sovendus-Token in der Sessionvariable - sovReqToken - gespeichert ist, wird dieser verwendet, um den 3529 // Sovendus-Conversion-Pixel zu erzeugen. Dieser Pixel wird dann dynamisch im DOM eingefügt. AnschlieÃend wird die 3530 // Sessionvariable - sovReqToken - gelöscht und die Sessionvariable - sovReqTokenDel - gesetzt. Diese wird im Teil 1 3531 // genutzt, um den Sovendus-URL-Parameter zu entfernen und sicherzustellen, dass der Sovendus-Token nicht doppelt genutzt wird. 3532 3533 if (sessionStorage.sovReqToken) { 3534 var sov_sess_token = sessionStorage.sovReqToken; 3535 console.log ("%c5033586 - Checkout complete - Sovendus - Sec 2 - ", "background-color:red; color: white;", "Session storage variable found: " 3536 + sov_sess_token); 3537 var sov_img = document.createElement('img'); 3538 sov_img.src = 'https://press-order-api.sovendus.com/ext/966d6a2c-7e0d-3288-95aa-b693769be6f8/image?sovReqToken='+sov_sess_token; 3539 document.getElementsByTagName('body')[0].appendChild(sov_img); 3540 console.log ("%c5033586 - Checkout complete - Sovendus - Sec 2 - ", "background-color:red; color: white;", "Pixel created: "+ sov_sess_token); 3541 sessionStorage.setItem("sovReqTokenDel", true); 3542 sessionStorage.removeItem("sovReqToken"); 3543 console.log ("%c5033586 - Checkout complete - Sovendus - Sec 2 - ", "background-color:red; color: white;", "Session storage variable removed."); 3544 } 3545 // ***************************************** 3546 // Sovendus-Integration - Teil 2 - Ende 3547 // ***************************************** 3548 3549 3550 // ***************************************** 3551 // Jurodo Conversiontracking - Start 3552 // ***************************************** 3553 if (skip_jurodo != true) { 3554 var juro_track_terms = ["TMXUF9ILKYT5","TMQ3XML2D5QQ","TM6OGABKKECN","TMJOT5N14787","TMBA5B7L1XX9","TMPW169EOBMO" ]; 3555 3556 if (juro_track_terms.includes(event.termId)) { 3557 console.log ("%c5033586 - Checkout complete - Jurodo", "background-color:red; color: white;", "Converted on trackable term: " 3558 + event.termId ); 3559 dataLayer.push({ 3560 'sub_val_1': event.termId, 3561 'sub_val_2': "n/a", 3562 'event': 'order_submit' 3563 }); 3564 } 3565 } 3566 // ***************************************** 3567 // Jurodo Conversiontracking - Ende 3568 // ***************************************** 3569 3570 if (window.location.href.includes("onetzplus-abo-verwalten") === true){ 3571 sessionStorage.setItem("upgrade_done","true"); 3572 console.log ("%c5033586 - "+ event_name, "background-color:red; color: white;", 3573 "sessionStorage.upgrade_done: " + sessionStorage.upgrade_done); 3574 } 3575 3576 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "receipt", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3577 {'callback': function(result) { 3578 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - receipt: " + result.httpStatus); 3579 } 3580 }]); 3581 3582 break; 3583 } 3584}]); 3585 3586// ***************************************** 3587// Ãberwacht verschiedene Gründe, aus denen der Checkout geschlossen werden kann. 3588// ***************************************** 3589tp.push(["addHandler", "checkoutClose", function(event) { 3590 console.log ("%c5033586 - "+ event_name, "background-color:red; color: white;", "checkoutClose: " + JSON.stringify(event) ); 3591 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3592 mtm_checkout_event.trackEvent(event_name, "checkoutClose - " + event.state,
3592 checkout_art_id, 1); 3593 3594 switch (event.state) { 3595 case 'checkoutCompleted': 3596 if (sessionStorage.encMail){ 3597 window.PianoESP && "function" == typeof window.PianoESP.handleUserDataPromise && window.PianoESP.handleUserDataPromise ({ 3598 email: atob(sessionStorage.encMail), 3599 squads: [11340] 3600 }); 3601 } 3602 3603 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "Cl_checkoutCompleted", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3604 {'callback': function(result) { 3605 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - Cl_checkoutCompleted: " + result.httpStatus); 3606 } 3607 }]); 3608 break; 3609 3610 case 'alreadyHasAccess': 3611 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "Cl_alreadyHasAccess", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3612 {'callback': function(result) { 3613 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - Cl_alreadyHasAccess: " + result.httpStatus); 3614 } 3615 }]); 3616 break; 3617 3618 case 'voucherRedemptionCompleted': 3619 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "Cl_voucherRedemption", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3620 {'callback': function(result) { 3621 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - Cl_voucherRedemption: " + result.httpStatus); 3622 } 3623 }]); 3624 break; 3625 3626 case 'close': 3627 if (sessionStorage.encMail) { 3628 window.PianoESP && "function" == typeof window.PianoESP.handleUserDataPromise && window.PianoESP.handleUserDataPromise ({ 3629 email: atob(sessionStorage.encMail), 3630 squads: [11341] 3631 }); 3632 } 3633 var modal_list = document.getElementsByClassName("tp-modal"); 3634 for (x in modal_list){ 3635 modal_list[x].classList.remove("tp-modal-centered"); 3636 } 3637 3638 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "Close_only", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3639 {'callback': function(result) { 3640 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - Close_only: " + result.httpStatus); 3641 } 3642 }]); 3643 break; 3644 } 3645}]); 3646 3647// ***************************************** 3648// Wird ausgelöst wenn ein Kauf erfolgreich abgeschlossen wurde. 3649// ***************************************** 3650tp.push(["addHandler", "checkoutComplete", function(conversion) { 3651 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3652 mtm_checkout_event.trackEvent(event_name, "checkoutComplete", checkout_art_id, 1); 3653 3654 sessionStorage.setItem("hasResAccess", "true"); 3655 sessionStorage.setItem("hasPremiumAccess", "true"); 3656 3657 window.PianoESP && "function" == typeof window.PianoESP.handleUserDataPromise && window.PianoESP.handleUserDataPromise ({ 3658 email: conversion.email, 3659 squads: [933, 11340] 3660 }); 3661 3662 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "checkoutComplete", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3663 {'callback': function(result) { 3664 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - checkoutComplete: " + result.httpStatus); 3665 } 3666 }]); 3667}]); 3668 3669// ***************************************** 3670// Wird bei Fehlern innerhalb des Checkouts ausgelöst. 3671// ***************************************** 3672tp.push(["addHandler", "checkoutError", function(errorData) { 3673 console.log ("%c5033586 - "+ event_name, "background-color:red; color: white;", "checkoutError: " + errorData.message ); 3674 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3675 mtm_checkout_event.trackEvent(event_name, "checkoutError: " + errorData.message, checkout_art_id, 1); 3676 3677 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "checkoutError", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3678 {'callback': function(result) { 3679 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - checkoutError: " + result.httpStatus); 3680 } 3681 }]); 3682}]); 3683 3684 3685// ***************************************** 3686// Wird ausgelöst wenn ein Upgrade erfolgreich gekauft wurde. 3687// ***************************************** 3688tp.push(["addHandler", "completeUpgradePurchase", function(params) { 3689 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3690 mtm_checkout_event.trackEvent(event_name, "completeUpgradePurchase", checkout_art_id, 1); 3691 3692 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "completeUpgradePurchase", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3693 {'callback': function(result) { 3694 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - completeUpgradePurchase: " + result.httpStatus); 3695 } 3696 }]); 3697}]); 3698 3699// ***************************************** 3700// Funktion unbekannt - Event aus Logs abgeleitet. Tracking, um die Häufigkeit zu erfassen. 3701// ***************************************** 3702tp.push(["addHandler", "onCheckoutClose", function() { 3703 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3704 mtm_checkout_event.trackEvent(event_name, "onCheckoutClose", checkout_art_id, 1); 3705 3706 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "onCheckoutClose", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3707 {'callback': function(result) { 3708 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - onCheckoutClose: " + result.httpStatus); 3709 } 3710 }]); 3711}]); 3712 3713// ***************************************** 3714// Funktion unbekannt - Event aus Logs abgeleitet. Tracking, um die Häufigkeit zu erfassen. 3715// ***************************************** 3716tp.push(["addHandler", "purge", function() { 3717 let mtm_checkout_event = Matomo.getAsyncTracker('https://matomo.oberpfalzmedien.de/matomo.php', 2); 3718 mtm_checkout_event.trackEvent(event_name, "purge", checkout_art_id, 1); 3719 3720 cX.callQueue.push(['sendEvent','om_checkout_event',{evt_action: "purge", evt_page: cx_event_page, evt_art_id: checkout_art_id}, 3721 {'callback': function(result) { 3722 console.log ("%c5033586 - cX event", "background-color:red; color: white;", "cX Event - purge: " + result.httpStatus); 3723 } 3724 }]); 3725}]); 3726 3727</script>
3727</p> 3728 3729 </div> 3730 3731 3732</article> <!-- /.node --> 3733 </div> 3734 3735 3736 3737 </div> 3738</div> 3739 </div> 3740</div> 3741 </main></div> 3742 3743 3744 3745 </div></div> <!-- /.section, /#content --> 3746 3747 3748 3749 </div></div> <!-- /#main, /#main-wrapper --> 3750 3751 <hr /> 3752 3753 <div id="toplink" class="toplink-wrapper"><a class="toplink" href="#page-wrapper"><span class="txt">Nach oben</span></a></div> 3754 3755 <footer id="footer"><div class="section"> 3756 <div class="region region-footer"> 3757 <section id="block-block-6" class="block block-block first last region-odd even region-count-1 count-10"> 3758 3759 <div class="content"> 3760 <div class="upper"> 3761<div class="sociallinks"><span class="txt">Folgen Sie uns auf:</span> 3762<ul aria-label="Wir in den sozialen Netzwerken"> 3763 <li><a class="fb" href="https://www.facebook.com/onetz.de/" rel="nofollow noreferrer" target="_blank"><span class="txt">Facebook</span></a></li> 3764 <li><a class="youtube" href="https://www.youtube.com/user/Oberpfalznetz" rel="nofollow noreferrer" target="_blank"><span class="txt">YouTube</span></a></li> 3765 <li><a class="insta" href="https://www.instagram.com/onetz.de/" rel="nofollow noreferrer" target="_blank"><span class="txt">Instagram</span></a></li> 3766 <li><a class="tiktok" href="https://www.tiktok.com/discover/oberpfalz-medien" rel="nofollow noreferrer" target="_blank"><span class="txt">Tik Tok</span></a></li> 3767 <li><a class="linkedin" href="https://www.linkedin.com/company/oberpfalzmedien" rel="nofollow noreferrer" target="_blank"><span class="txt">LinkedIn</span></a></li> 3768</ul> 3769</div> 3770 3771<div class="opmlogo"><a href="https://www.oberpfalzmedien.de/" rel="nofollow noreferrer" target="_blank"><span class="txt">Verlag</span></a></div> 3772<div class="footernav"> 3773<ul aria-label="Kontaktmöglichkeiten und wichtige Informationen"> 3774 <li><a href="/kontakt/">Kontakt</a></li> 3775 <li><a href="https://www.oberpfalzmedien.de/" rel="nofollow noreferrer" target="_blank">Verlag</a></li> 3776 <li class="break-after"><a href="https://www.oberpfalzmedien.de/karriere/" rel="nofollow noreferrer" target="_blank">Karriere</a></li> 3777 <li><a href="https://oberpfalzmedien.de/mediadaten/" rel="nofollow noreferrer" target="_blank">Mediadaten</a></li> 3778 <li><a href="/kuendigung-abonnement/" target="_blank">Abo kündigen</a></li> 3779 <li><a href="/onetz-app-download.html" target="_blank">App</a></li> 3780 <li><a href="#" onclick="__cmp('showScreen'); return false;" >Datenschutz-Einstellungen</a></li> 3781</ul> 3782</div> 3783 3784</div> 3785 3786<div class="lower"> 3787<div class="footernav"> 3788<ul aria-label="Rechtliches"> 3789 <li><a href="https://om-datenschutz.de/impressum" rel="nofollow noreferrer">Impressum</a></li> 3790 <li><a href="/erklaerung-barrierefreiheit-fuer-wwwonetzde.html" rel="nofollow noreferrer">Barrierefreiheit</a></li> 3791 <li><a href="https://om-datenschutz.de/" rel="nofollow noreferrer">Datenschutz</a></li> 3792 <li><a href="/agbs/">AGB</a></li> 3793 <li><a href="/widerrufsformular/">Widerruf</a></li> 3794</ul> 3795</div> 3796 3797<div class="subfooter"> 3798Copyright © - powered by <a href="https://www.nativemedia.de" target="_blank">native:media</a> 3799</div> 3800 3801</div> 3802 3803 </div> 3804 3805 </section> <!-- /.block --> 3806</div> <!-- /.region --> 3807 </div></footer> <!-- /.section, /#footer --> 3808 3809 </div> <!-- /#page --> 3810 3811 </div> <!-- /#page-wrapper --> 3812 3813 <nav id="navigation"><div class="section clearfix"> 3814 3815 3816 <div class="region region-navigation"> 3817 <section id="block-menu-primary-links" class="block block-menu first last region-odd odd region-count-1 count-9"> 3818 3819 <div class="content"> 3820 <ul class="menu"><li class="expanded lokales first active-trail"><a href="/oberpfalz">Lokales</a><ul class="menu"><li class="leaf amberg first"><a href="/oberpfalz/region-amberg">Amberg</a></li> 3821<li class="leaf cham"><a href="https://www.onetz.de/oberpfalz/region-cham">Cham</a></li> 3822<li class="leaf eschenbach"><a href="/oberpfalz/region-eschenbach">Eschenbach</a></li> 3823<li class="leaf kemnath"><a href="/oberpfalz/region-kemnath">Kemnath</a></li> 3824<li class="leaf nabburg"><a href="/oberpfalz/region-nabburg">Nabburg</a></li> 3825<li class="leaf oberviechtach-neunburg"><a href="/oberpfalz/region-oberviechtach-neunburg">Oberviechtach/Neunburg</a></li> 3826<li class="leaf regensburg"><a href="/oberpfalz/region-regensburg">Regensburg</a></li> 3827<li class="leaf schwandorf"><a href="/oberpfalz/region-schwandorf">Schwandorf</a></li> 3828<li class="leaf sulzbach-rosenberg"><a href="/oberpfalz/region-sulzbach-rosenberg">Sulzbach-Rosenberg</a></li> 3829<li class="leaf tirschenreuth"><a href="/oberpfalz/region-tirschenreuth">Tirschenreuth</a></li> 3830<li class="leaf vohenstrauss"><a href="/oberpfalz/region-vohenstrauss">VohenstrauÃ</a></li> 3831<li class="leaf weiden-neustadt-adwn">
3831<a href="/oberpfalz/region-weiden-neustadt-waldnaab">Weiden/Neustadt a.d.WN</a></li> 3832<li class="leaf polizei-feuerwehr"><a href="/polizei_feuerwehr">Polizei & Feuerwehr</a></li> 3833<li class="leaf vereinen-oberpfalzdaheimde last"><a href="https://www.oberpfalzdaheim.de" target="_blank">Aus den Vereinen (oberpfalzdaheim.de)</a></li> 3834</ul></li> 3835<li class="expanded onetzplus"><a href="https://www.onetz.de/onetzplus">OnetzPlus</a><ul class="menu"><li class="leaf onetzplus-artikel first"><a href="https://www.onetz.de/onetzplus">OnetzPlus Artikel</a></li> 3836<li class="leaf onetzplus-hintergrund"><a href="https://www.onetz.de/onetzplushintergrund">OnetzPlus Hintergrund</a></li> 3837<li class="leaf onetzplus-empfehlungen"><a href="https://www.onetz.de/onetzplusempfehlungen">OnetzPlus Empfehlungen</a></li> 3838<li class="leaf onetzplus-abo last"><a href="https://www.onetz.de/plus">OnetzPlus Abo</a></li> 3839</ul></li> 3840<li class="expanded sport"><a href="/sport">Sport</a><ul class="menu"><li class="leaf fussball-oberpfalz first"><a href="https://www.onetz.de/amateurfussball">FuÃball in der Oberpfalz</a></li> 3841<li class="leaf blue-devils-weiden"><a href="https://www.onetz.de/blue-devils">Blue Devils Weiden</a></li> 3842<li class="leaf handball"><a href="https://www.onetz.de/handball">Handball</a></li> 3843<li class="leaf basketball"><a href="https://www.onetz.de/basketball">Basketball</a></li> 3844<li class="leaf sport-oberpfalz"><a href="https://www.onetz.de/sport">Sport aus der Oberpfalz</a></li> 3845<li class="leaf sport-ueberregional last"><a href="https://www.onetz.de/themen/sport_ueberregional">Sport überregional</a></li> 3846</ul></li> 3847<li class="expanded politik-wirtschaft-justiz"><a href="/deutschland-und-welt">Politik | Wirtschaft | Justiz</a><ul class="menu"><li class="leaf wirtschaft first">
3847<a href="/themen/wirtschaft">Wirtschaft</a></li> 3848<li class="leaf gericht-justiz"><a href="/Gericht_Justiz">Gericht & Justiz</a></li> 3849<li class="leaf bayern"><a href="/themen/bayern">Bayern</a></li> 3850<li class="leaf politik last"><a href="/themen/politik">Politik</a></li> 3851</ul></li> 3852<li class="expanded magazin"><a href="/themen">Magazin</a><ul class="menu"><li class="leaf essen-geniessen first"><a href="https://www.onetz.de/essen-geniessen">Essen & GenieÃen</a></li> 3853<li class="leaf bauen-wohnen"><a href="https://www.onetz.de/themen/bauen-wohnen">Bauen & Wohnen</a></li> 3854<li class="leaf landwirtschaft"><a href="https://www.onetz.de/themen/landwirtschaft">Landwirtschaft</a></li> 3855<li class="leaf damals-geschichte-oberpfalz"><a href="https://www.onetz.de/damals">Damals - Geschichte der Oberpfalz</a></li> 3856<li class="leaf hochzeit"><a href="https://www.onetz.de/hochzeit">Hochzeit</a></li> 3857<li class="leaf kultur"><a href="/themen/kultur">Kultur</a></li> 3858<li class="leaf leo"><a href="/leo" class="service">LEO</a></li> 3859<li class="leaf owz"><a href="/owz" class="service">OWZ</a></li> 3860<li class="leaf magazine last"><a href="/magazine" class="service">Magazine</a></li> 3861</ul></li> 3862<li class="expanded anzeigen-maerkte"><a href="/anzeigen-uebersicht">Anzeigen und Märkte</a><ul class="menu"><li class="leaf trauer-gedenkportal first"><a href="https://trauer.onetz.de?utm_source=onetz&utm_medium=servicemenue" class="service" target="_blank">Trauer- und Gedenkportal</a></li> 3863<li class="leaf stellenmarkt"><a href="https://stellen.onetz.de?utm_source=onetz&utm_medium=servicemenue" class="service" target="_blank">Stellenmarkt</a></li> 3864<li class="leaf ausbildung-oberpfalzde"><a href="https://www.ausbildung-oberpfalz.de/?utm_source=Menue-Ratgeber&utm_medium=Menueeintrag" target="_blank">Ausbildung-Oberpfalz.de</a></li> 3865<li class="leaf immobilienmarkt"><a href="https://immo.onetz.de/?utm_source=onetz&utm_medium=servicemenue" class="service" target="_blank">Immobilienmarkt</a></li> 3866<li class="leaf zweisam-partnersuche"><a href="https://zweisam.onetz.de/?AID=servicemenue?utm_source=Service%20Men%C3%BC&utm_medium=Link" class="service" target="_blank">Zweisam - die Partnersuche</a></li> 3867<li class="leaf anzeigen-uebersicht"><a href="/anzeigen-uebersicht">Anzeigen Ãbersicht</a></li> 3868<li class="leaf anzeige-aufgeben"><a href="https://www.onetz.de/anzeige-aufgeben/">Anzeige aufgeben</a></li> 3869<li class="leaf prospektbeilagen"><a href="/prospekte" class="service">Prospektbeilagen</a></li> 3870<li class="leaf mediadaten last"><a href="https://oberpfalzmedien.de/mediadaten/">Mediadaten</a></li> 3871</ul></li> 3872<li class="expanded service"><a href="/">Service</a><ul class="menu"><li class="leaf podcasts first"><a href="https://www.onetz.de/podcast/">Podcasts</a></li> 3873<li class="leaf wichtigste-morgen-amberg"><a href="https://www.onetz.de/oberpfalz/amberg/gut-informiert-tag-nachrichten-amberg-hoeren-id5333807.html">Das Wichtigste am Morgen - Amberg</a></li> 3874<li class="leaf wichtigste-morgen-weiden"><a href="https://www.onetz.de/oberpfalz/weiden-oberpfalz/gut-informiert-tag-nachrichten-weiden-hoeren-id5333810.html">Das Wichtigste am Morgen - Weiden</a></li> 3875<li class="leaf waswannwo"><a href="https://www.onetz.de/waswannwo">WasWannWo</a></li> 3876<li class="leaf ticketshop"><a href="https://www.onetz.de/ticket">Ticketshop</a></li> 3877<li class="leaf junior-club"><a href="https://www.onetz.de/junior-club">Junior-Club</a></li> 3878<li class="leaf tv-programm"><a href="https://tv.onetz.de" target="_blank">TV-Programm</a></li> 3879<li class="leaf leseranwalt"><a href="/themen/leseranwalt">Leseranwalt</a></li> 3880<li class="leaf wetter"><a href="https://www.onetz.de/wetter" class="preservice">Wetter</a></li> 3881<li class="leaf newsletter"><a href="https://www.onetz.de/newsletter" class="service">Newsletter</a></li> 3882<li class="leaf whatsapp last"><a href="https://www.onetz.de/deutschland-welt/oberpfalz/nachrichten-onetz-gibt-whatsapp-id4647762.html">WhatsApp</a></li> 3883</ul></li> 3884<li class="expanded e-paper"><a href="https://zeitung.onetz.de/" class="service" target="_blank">E-Paper</a><ul class="menu"><li class="leaf e-paper-lesen first"><a href="https://zeitung.onetz.de/">E-Paper lesen</a></li> 3885<li class="leaf e-paper-archiv"><a href="https://zeitung.onetz.de/gridshelf.act">E-Paper-Archiv</a></li> 3886<li class="leaf e-paper-abo last"><a href="https://www.onetz.de/abo-service?sec=digital">E-Paper-Abo</a></li> 3887</ul></li> 3888<li class="expanded abo"><a href="https://www.onetz.de/abo-service">Abo</a><ul class="menu"><li class="leaf abo-angebote first"><a href="https://www.onetz.de/abo-service" class="service">Abo-Angebote</a></li> 3889<li class="leaf geschenkabo"><a href="https://www.onetz.de/aboschenken">Geschenkabo</a></li> 3890<li class="leaf onetzplus-abo"><a href="https://www.onetz.de/plus">OnetzPlus Abo</a></li> 3891<li class="leaf schnupperabo"><a href="https://www.onetz.de/schnupperabo">Schnupperabo</a></li> 3892<li class="leaf e-paper-abo"><a href="https://www.onetz.de/abo-service?sec=digital">E-Paper-Abo</a></li> 3893<li class="leaf onetzplus"><a href="https://www.onetz.de/plus" class="service">OnetzPlus</a></li> 3894<li class="leaf abo-service last"><a href="https://www.onetz.de/abo-service?sec=service">Abo-Service</a></li> 3895</ul></li> 3896<li class="expanded onetz last"><a href="/mein-onetz">Mein Onetz</a><ul class="menu"><li class="leaf e-paper first"><a href="https://zeitung.onetz.de/dashboard.act" target="_blank">Mein E-Paper</a></li> 3897<li class="leaf push-meldungen"><a href="https://www.onetz.de/desktop-push.html" class="service">Push-Meldungen</a></li> 3898<li class="leaf newsletter-verwalten"><a href="https://www.onetz.de/newsletter">Newsletter verwalten</a></li> 3899<li class="leaf rss-feeds"><a href="/intern.html-6" class="service">RSS-Feeds</a></li> 3900<li class="leaf leserreisen"><a href="https://leserreisen-onetz.de/">Leserreisen</a></li> 3901<li class="leaf lesershop"><a href="https://www.onetz-shop.de" class="service">Lesershop</a></li> 3902<li class="leaf kursangebote"><a href="https://www.onetz.de/kursangebote" class="service">Kursangebote</a></li> 3903<li class="leaf netiquette last"><a href="https://www.onetz.de/netiquette">Netiquette</a></li> 3904</ul></li> 3905</ul> </div> 3906 3907 </section> <!-- /.block --> 3908</div> <!-- /.region --> 3909 3910 </div></nav> <!-- /.section, /#navigation --> 3911 3912 3913
3914 <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true"> 3915 <div class="pswp__bg"></div> 3916 <div class="pswp__scroll-wrap"> 3917 <div class="pswp__container"><div class="pswp__item"></div><div class="pswp__item"></div><div class="pswp__item"></div></div> 3918 <div class="pswp__ui pswp__ui--hidden"> 3919 <div class="pswp__top-bar"> 3920 <div class="pswp__counter"></div> 3921 <button class="pswp__button pswp__button--close" title="SchlieÃen (Esc)"></button> 3922 <button class="pswp__button pswp__button--fs" title="Vollbildmodus aktivieren/deaktivieren"></button> 3923 <button class="pswp__button pswp__button--zoom" title="Zoom"></button> 3924 <div class="pswp__preloader"> 3925 <div class="pswp__preloader__icn"><div class="pswp__preloader__cut"><div class="pswp__preloader__donut"></div></div></div> 3926 </div> 3927 </div> 3928 <button class="pswp__button pswp__button--arrow--left" title="Zurück (Cursor links)"></button> 3929 <button class="pswp__button pswp__button--arrow--right" title="Vor (Cursor rechts)"></button> 3930 <div class="pswp__caption"><div class="pswp__caption__center"></div></div> 3931 </div> 3932 </div> 3933 </div> 3934 3935
3935<script id="pa-event"> 3936 function waitForPa() { 3937 let attempts = 0; 3938 3939 function checkPaAvailable() { 3940 attempts++; 3941 3942 if (typeof pa !== "undefined") { 3943 const params = {"content_gated":false,"content_is_promoted":false,"content_article_name":"Good News: Einfach gute Nachrichten","content_article_id":"5481091","content_publication_date":"2026-09-18T16:55:27+02:00","content_authors":["Redaktion ONETZ"],"page_content_type":"article","content_user_needs":["UpdateMe"],"content_section":"Oberpfalz"}; 3944 params.page = document.title.replace(" | Onetz", ""); 3945 3946 pa.sendEvent('page.display', params); 3947 console.log('PA event fired with params', params); 3948 return; 3949 } 3950 3951 if (attempts >= 20) { 3952 console.log("PA object not found within 20 attempts. Aborting send event loop."); 3953 return; 3954 } 3955 3956 setTimeout(checkPaAvailable, 100); 3957 } 3958 3959 checkPaAvailable(); 3960 } 3961 3962 waitForPa(); 3963 </script>
3963 3964 3965 3966 3967
3967<script type="text/plain" class="cmplazyload" data-cmp-vendor="s2570"> 3968 (function(u,p,s,c,r){u[r]=u[r]||function(p){(u[r].q=u[r].q||[]).push(p)},u[r].ls=1*new Date(); 3969 var a=p.createElement(s),m=p.getElementsByTagName(s)[0];a.async=1;a.src=c;m.parentNode.insertBefore(a,m) 3970 })(window,document,'script','//files.upscore.com/async/upScore.js','upScore'); 3971 upScore({"config":{"domain":"onetz.de","article":".pane-node-content","track_positions":false},"data":{"taxonomy":"UpdateMe, goodvibesonetz","object_type":"article","user_status":0,"custom_app":0,"object_id":"5481091","pubdate":"2026-09-18T16:55:27+02:00","author":"Redaktion ONETZ","custom_video":0,"content_type":0,"content_blocked":0,"section":"Oberpfalz"}}); 3972 console.log('upScore activated'); 3973 </script>
3973 3974 3975
3975<script src='/dnt7/ivwcfg.php'></script>
3975 3976 <!-- IOM TCF2.0 --> 3977
3977<script type="text/plain" class="cmplazyload" data-cmp-vendor="s1481" data-cmp-src="https://data-7023b17a38.onetz.de/iomm/latest/bootstrap/stub.js"></script>
3977 3978
3978<script type="text/plain" class="cmplazyload" data-cmp-vendor="s1481"> 3979 // set for slick events 3980 var iomPageCode = 'localnews'; 3981 3982 var cm_intervalIOMm = setInterval(watchCMPiomm, 100); 3983 3984 function watchCMPiomm () { 3985 if (typeof IOMm == 'function') { 3986 clearInterval(cm_intervalIOMm); 3987 3988 IOMm('configure', { st: ivwOfferId, dn: 'data-7023b17a38.onetz.de', mh:5 }); 3989 IOMm('pageview', { cp: 'localnews' }); 3990 3991 console.log('IOM cfg init'); 3992 } 3993 } 3994 </script>
3994 3995
3995<script type="text/plain" class="cmplazyload" data-cmp-vendor="s1481" data-cmp-src='https://data-7023b17a38.onetz.de/iomm/latest/manager/base/es5/bundle.js'></script>
3995 3996 3997
3997<script type="text/javascript" src="/sites/default/files/js/js_e756e0a0b5e965e359ddbe3695eec0a0.jsmin.js"></script>
3997 3998 3999 <div class="region region-bottom-includes"> 4000 <section id="block-block-9" class="block block-block first last region-odd odd region-count-1 count-11"> 4001 4002 <div class="content"> 4003 4004
4004<script src="/sites/all/themes/dnt_onet22/dist/js/vendor/ext-piano-integration.js?v=6"></script>
4004 4005 4006
4007<script> 4008if (typeof iom !== 'undefined') { 4009 iom.c = function(){}; 4010 var iam_data = {}; 4011} 4012</script>
4012 4013
4014<script> 4015function dnt_perform_sitelogin() { 4016 console.log('perform site login for app. pathname: ' + window.location.pathname); 4017 window.location = 'https://' + window.location.hostname + '/user/login?destination=' + window.location.pathname; 4018} 4019</script>
4019 </div> 4020 4021 </section> <!-- /.block --> 4022</div> <!-- /.region --> 4023 4024</body> 4025</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.