Ich wollte nur einen einfachen iFrame für mich, für mein Forum basteln, soweit so gut.
Bin einer Anleitung für das JavaScript gefolgt, soweit so gut. Ich fand, auch per Zufall heraus das da auch CSS Codes im Javascript gehen. Gesagt getan, habe seit gestern Abend bis jetzt am Script gesessen .
Mit den anderen Script gibt es zum Glück keinen Ärger, nur mit einem, und zwar mit dem Seitenlader Script. Wieviel Sekunden es dauert die Seite zu laden, funktioniert nicht.
Da ich ja Videos von meiner Arbeit auf YouTube hochlade, muss ich das schreiben, dass das ein Drittanbieter ist, und die Daten dort gesammelt werden.
Um den ganzen juristischen Ärger zu umgehen, habe ich mich hingesetzt und das iFrame gebastelt.
const noticeHeader = frDocument.createElement('h1') noticeHeader.style = `font-size: 15px` noticeHeader.innerHTML = ` Mit dem Ansehen des Videos von <i>${frame.getAttribute('data-service-provider-name') || getHostname(url)}</i> erklären Sie sich einverstanden, dass Ihre Daten an <i>${frame.getAttribute('data-service-provider-name') || getHostname(url)}</i> übertragen werden. `
const noticeInfo = frDocument.createElement('p') noticeInfo.innerHTML = ` Durch die Annahme greifen Sie auf einen Dienst zu, der von einem Drittanbieter extern für <i>${window.location.hostname}</i> bereitgestellt wird. <br /> Wir von <i>${window.location.hostname}</i> distanzieren uns hiermit ausdrücklich von den Inhalten, die sich hinter den von <i>${frame.getAttribute('data-service-provider-name') || getHostname(url)}</i> (einschließlich deruntergeordneten Seiten) aufgeführten Links, den dahinterstehenden Servern, weiterführenden Links und sämtlichen anderen sichtbaren oder unsichtbaren Inhalten. `
<center><p class="text-center">YouTube-Videos werden für Webseiten-Betreiber immer wichtiger, da der geschriebene Text für Personen visuell Strukturiert aufbereitet und somit eine breitere Zielgruppe angesprochen werden kann.<br> <br> Seit diesem Jahr sollten Entwickler dank der DSGVO einige Anpassungen an Ihrer Webseite vorgenommen haben, um nicht in die Abmahn-Falle zu gelangen. Ein großer Punkt ist die Integration von Google-Services die nur noch teilweise oder gar nicht mehr verwendet werden dürfen.<br> <br> Da YouTube zur Google-Familie gehört und dadurch Benutzer-Daten ungefragt an Europa-Fremde Server übertragen werden, sollten nur noch wenige Webseiten mit einer Video-Anbindung zum Streaming-Giganten existieren.<br> <br> Auch die sogenannte "Datenschutzkonforme" NoCookie-Implementierung ist kein Garant für eine DSGVO-Konforme Einbindung der Videos. Denn es werden weiterhin Daten des Benutzers übertragen. Bei diesem Verfahren wird lediglich die Verwendung von Cookies unterbunden.<br> <br> Damit du trotzdem YouTube-Videos ausspielen darfst musst du die explizite Zustimmung der Datenübertragung vom Benutzer einholen.<br> <br> Das kann durch einen Klick auf eine Schaltfläche geschehen, die unter einem entsprechenden Hinweistext platziert wird. Zudem sollte ein Link zu Deiner Datenschutz-Seite platziert werden, der mit einem Klick in einem neuen Reiter geöffnet wird.</p></center>
const noticeHeader = frDocument.createElement('h1') noticeHeader.style = `font-size: 15px` noticeHeader.innerHTML = ` Mit dem Ansehen des Videos von ${frame.getAttribute('data-service-provider-name') || getHostname(url)} Sie erklären sich damit einverstanden, dass Ihre Daten an ${frame.getAttribute('data-service-provider-name') || getHostname(url)} übertragen werden. `
const noticeInfo = frDocument.createElement('p') noticeInfo.innerHTML = ` Durch die Annahme greifen Sie auf einen Dienst zu, der von einem Drittanbieter bereitgestellt wird extern zu ${window.location.hostname} Wir von ${window.location.hostname} distanzieren hiermit ausdrücklich von den Inhalten, die sich hinter den bei ${frame.getAttribute('data-service-provider-name') || getHostname(url)} (einschließlich der untergeordneten Seiten) aufgeführten Links, den dahinter stehenden Servern, weiterführenden Links und sämtlichen anderen sichtbaren oder unsichtbaren Inhalten verbergen.<br>Hier sehen sie nochmal den <a href="https://www.servicecrewloreth.de/datenschutz.html"" target="_blank">Datenschutz</a> von ${window.location.hostname} `
Was mir aufgefallen ist das hier die Windowsbefehle gleich sind.
Deine Information:
1
document.getElementById
iFrame:
1
document.getElementsByTagName
Vielleicht liegt es daran dass es sich auch mit den Seiten Lade-Script nicht verträgt, auch Deine Information verträgt sich nicht mit dem iFrame. Das habe ich jetzt festgestellt, ich finde da im Moment keine Lösung wie ich das anders benennen kann oder umschreiben.
Bin hier noch reiner Anfänger in dem Javascript schreiben, wollte nur mal bescheidgeben, ob das, das Problem ist, dass sie sich nicht vertragen.
Ich hoffe, ich habe es verständlich genug erklärt, das ist mir aufgefallen.
Fehlersuche: Habe hier beim iFrame etwas festgestellt
Hallo Daishi, ich denke wir müssen uns nach einem anderen Skript umschauen, dass die Ladezeit einer Seite anzeigt. Auch in der Vergangenheit hat das Lade-Skript nicht gut mit anderen Skripten zusammengearbeitet. Ich habe noch keine vernünftige Lösung gefunden. Auch das Umschreiben des Ladeskript brachte kein Erfolg!
Wolfgang, das bekommen wir bestimmt hin, etwas Neues zu erstellen, die Zeit drängt ja nicht. Ich halte mich daran, nicht alles unter Druck zu machen, sonst macht es ja keinen Spaß mehr und die Lust vergeht da so schnell.
Ich halte mich da an deine lieben Worte.
Ich habe an dem iFrame mal weitergearbeitet und etwas verbessert. Ich denke, dass es soweit gut ausschaut. Nur hapert es an meinen Deutschkenntnisse und Formulierungen.
Ich habe etwas festgestellt. Wir selbst im Forum haben ja keine Logfiles, das hat ja Xobor unser Provider, der uns ja die Foren zur Verfügung stellt. Ich habe unsere DSGVO nochmal durchgelesen, da steht ja beschrieben, dass wir sie speichern, dass ist dem ja nicht so.
Oder habe ich das falsch verstanden. Ich suchte nämlich im Admin Bereich nach Logfiles, konnte demnach nichts finden.
Habe mal mein iFrame jetzt angepasst und das dazugeschrieben.
Also soweit macht das Script keine weiteren Aufstände mit den anderen Scripts, die ich installiert habe. Das Ladescript habe ich nicht installiert, lasse es erstmal weg, ist ja nicht so notwendig.
Ich hoffe, dass ich das auch mit der Distanzierung richtig ausgesprochen habe.
Wie gesagt, da ich selbst bei Xobor nichts gefunden habe, was iFrame für Business Template (v4) und v 6 angeht .
Deswegen dachte ich mir, ich schreibe mir eine selbst. Gesagt, getan.
</style> <fieldset class="ideen"><br> <legend><span id="idee"><br></span></legend> <br><br><strong>Datenerfassung auf diesem Forum Cookies<br>
<br> Server-Log-Dateien<br> <br> Der Provider Xobor von Service Crew Loreth Forum erhebt und speichert automatisch Informationen in so genannten Server-Log-Dateien,<br> <br> die Ihr Browser automatisch an uns übermittelt.<br> <br> Dies sind:<br>
const noticeHeader = frDocument.createElement('h1') noticeHeader.style = `font-size: 15px` noticeHeader.innerHTML = ` Mit dem Aufruf des Videos erklärst Du Dich einverstanden, dass Deine Daten an ${frame.getAttribute('data-service-provider-name') || getHostname(url)} übermittelt werden. `
const noticeInfo = frDocument.createElement('p') noticeInfo.innerHTML = ` Wir von ${window.location.hostname} distanzieren hiermit ausdrücklich von den Inhalten, die sich hinter den bei ${frame.getAttribute('data-service-provider-name') || getHostname(url)} (einschließlich der untergeordneten Seiten) aufgeführten Links, den dahinter stehenden Servern, weiterführenden Links und sämtlichen anderen sichtbaren oder unsichtbaren Inhalten verbergen.<br>Hier sehen sie nochmal den <a href="https://www.servicecrewloreth.de/datenschutz.html"" target="_blank">Datenschutz</a> von ${window.location.hostname} `
Zitat von Wolfgang im Beitrag #3Hallo Daishi, ich denke, wir müssen uns nach einem anderen Skript umschauen, dass die Ladezeit einer Seite anzeigt. Auch in der Vergangenheit hat das Lade-Skript nicht gut mit anderen Skripten zusammengearbeitet. Ich habe noch keine vernünftige Lösung gefunden. Auch das Umschreiben des Lade-Skripts brachte kein Erfolg! Wolfgang
Hallo Wolfgang, habe eine Lösung gefunden, diese verträgt sich auch mit meinem neuen geschriebenen Script Ihre Verbindungsgeschwindigkeit.
Habe eine einfache Version Seitenladezeit-Script nur als Alert geschrieben. Kann in HTML in Fußleiste eingetragen werden und funktioniert im Forum.
Seitenladezeit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
<script type='text/javascript'> <!-- var jetzt = new Date();
function seitenladezeit() { var endzeit = new Date(); var diff = endzeit.getTime() - jetzt.getTime(); alert("Es hat " + diff/1000 + " Sekunden gedauert, diese Seite zu laden !"); } window.onload = seitenladezeit; //--> </script>
Ich hatte da noch eine Idee und Inspiration, und sodass es cool ausschaut, und moderner wirkt, sitze an dem Script jetzt schon 3 Tage dran. Bekomme es aber im Forum und im Portal nicht sauber hin. Finde den Fehler nicht, warum er es im Portal nicht sauber anzeigt.
Bin da schon ziemlich am verzweifeln. Habe jetzt mal 2 Stunden geschlafen, mache mich aber gleich ans Werk und versuche es weiter irgendwie hinzubekommen, dass es im Forum und im Portal sauber anzeigt.
Um es mal zu zeigen, wie es im Moment ausschaut.
Und hier mein original CodePen, so zeigt er es richtig und sauber an:
var imageAddr = "https://i.ibb.co/zJ7hpnn/besch-tzender-Engel.png"; var downloadSize = 5616998; //bytes
function ShowProgressMessage(msg) { if (console) { if (typeof msg == "string") { console.log(msg); } else { for (var i = 2; i < msg.length; i++) { console.log(msg[i]); } } }
var oProgress = document.getElementById("progress"); if (oProgress) { var actualHTML = (typeof msg == "string") ? msg : msg.join(""); oProgress.innerHTML = actualHTML; } }
function InitiateSpeedDetection() { ShowProgressMessage("Bild wird heruntergeladen, bitte warten..."); window.setTimeout(MeasureConnectionSpeed, 1); };
if (window.addEventListener) { window.addEventListener('load', InitiateSpeedDetection, false); } else if (window.attachEvent) { window.attachEvent('onload', InitiateSpeedDetection); }
function MeasureConnectionSpeed() { var startTime, endTime; var download = new Image(); download.onload = function () { endTime = (new Date()).getTime(); showResults(); }
download.onerror = function (err, msg) { ShowProgressMessage("Das Bild wurde nicht gefunden oder es liegt ein Downloadfehler vor"); }
startTime = (new Date()).getTime(); var cacheBuster = "?nnn=" + startTime; download.src = imageAddr + cacheBuster;
Wie gesagt, es war eine Idee und Inspiration. Hoffe, dass das gut ankommt, wenn aber jemand noch andere und Ideen hat nur zu, bin für alles offen. Jeder kann hier seine Ideen und Inspirationen freien Lauf lassen.
Habe noch eine neue Lösung gefunden, verträgt sich jetzt auch mit iFrames.
Habe daran lange getestet. Jedes Mal, wenn ich iFrames machte, knallte das Seitenladescript weg, egal was ich versuchte.
Jetzt geht das Ladescript, habe es irgendwie hinbekommen, dass es funktioniert mit allen 3 Scripte. War ganz schön schwierig, ich bin darin nicht so gut im Javascript, aber wie gesagt ich gebe mein Bestes, habe es jetzt auch hinbekommen, dass es im Forum sauber anzeigt, im Portal.
Vor allem schwierig ist es im Testforum, da das Portal nicht geht und Werbungen sind, das verschiebt sich einiges. Deswegen teste ich vieles in mein Hauptforum, na ja habe da schon 2 Styles geschrottet. Vergessen, Sicherungen zu machen (lach).
Ist ja nicht schlimm, kann man alles wieder neu schreiben, die neuen Filter unterstützt das Xobor Forum noch nicht.
Dieser Filter geht nicht im Forum: Hier mal der Code:
Werden die Codes für die Browser nicht angegeben, wird die Farbe nicht in dem Browser angezeigt, zum Beispiel mache ich nur für /* FF3.6+ */ den code rein werden in den anderen Browser die Farbe nicht angezeigt, nur im Firefox.
Wollte nur mal Bescheid geben, meine 3 Browser hatten Updates wieder gehabt, hatte auch wieder ein Update auf PC für Net-Framework.
Hatte alles mit den neuen Filter bestückt gehabt, aber wurde nichts angezeigt. Muss jetzt alles wieder mit den alten Filter bestücken.
Nicht das welche versuchen den neuen Filter einzubinden und dieser nicht gehen und sie sich wundern. Denke das sie nach 3 bis 4 Browser Updates gehen werden.
<div class="ladezeit_web">Ladezeiten von Webseiten anzeigen</div>
<div id="progress_speed">Verbindungsgeschwindigkeit nicht verfügbar!</div> <div id="ladezeit">Keine Anzeige verfügbar!</div>
</div> </center>
<script> var imageAddr = "https://files.homepagemodules.de/b104774/pictures_u610_zHWgswMD.jpg"; var downloadSize = 5616998; //bytes
function ShowProgressMessage(msg) { var oProgress = document.getElementById("progress_speed"); if (oProgress) { var actualHTML = (typeof msg == "string") ? msg : msg.join(""); oProgress.innerHTML = actualHTML; } }
function InitiateSpeedDetection() { ShowProgressMessage("Bild wird heruntergeladen, bitte warten..."); window.setTimeout(MeasureConnectionSpeed, 1); };
if (window.addEventListener) { window.addEventListener('load', InitiateSpeedDetection, false); } else if (window.attachEvent) { window.attachEvent('onload', InitiateSpeedDetection); }
function MeasureConnectionSpeed() { var startTime, endTime; var download = new Image(); download.onload = function () { endTime = (new Date()).getTime(); showResults(); } download.onerror = function (err, msg) { ShowProgressMessage("Das Bild wurde nicht gefunden oder es liegt ein Downloadfehler vor"); }
startTime = (new Date()).getTime(); var cacheBuster = "?nnn=" + startTime; download.src = imageAddr + cacheBuster;
function showResults() { var duration = (endTime - startTime) / 1000; var bitsLoaded = downloadSize * 8; var speedmbps2 = ((bitsLoaded / duration) / 8388608).toFixed(2); ShowProgressMessage(["<p>Die augenblickliche Verbindungsgeschwindigkeit beträgt " + speedmbps2 + " MB/s" + "!</p>"]); document.querySelector("body > div").innerHTML="" } } </script>
<script> // Seitenladeskript var ladestart = new Date().getTime();
function seitenladezeit() { var ladeende = new Date().getTime(); var ladezeit = (ladeende - ladestart) / 1000 ;
document.getElementById("ladezeit").innerHTML = "Es hat "+ ladezeit +" Sekunden gedauert, die Seite zu laden!"; }
Habe jetzt lange daran herumgewurstelt, bis ich es so weit hinbekommen habe, einfach und schlicht, mit Information.
Da mich immer diese blöde Werbeeinblendungen am Ende des Videos so sehr nerven, habe ich nach einer Anleitung für Javascript gesucht und diese da abgeschaut und bei mir eingebaut. Habe es auch getestet mit mehrfachen Videos. Auch das funktioniert jetzt ohne Probleme.
Mit mehrfachen Videos habe ich es im Portal und eigene Seiten getestet, funktioniert alles problemlos.
Wo ich noch Probleme habe, ist es in der Iconbar einzufügen. Egal welche Codevariante ich eingebe, es funktioniert das nicht. Das Fenster wird nur angezeigt, nur ohne Funktion und ohne Anzeige, nur der Rahmen.
Oder muss ich das alles umschreiben als Plugin und mit den Klammern - Codes?
Als Plugin habe ich es ja versucht. Ohne Klammer - Codes zeigt es mir aber im Header und Footer an, wenn ich es im Header oder Footer erstelle.
So wie ich es gesehen habe, braucht man da auch bestimmte Klammer - Codes von den Templates, und die spezielle ID Nummern, die kenne ich nicht. Finde keine detaillierte Liste wo diese IDs und die ganzen benötigten Klammer - Codes oder ich gebe es für die Suche falsch an.
Hier mal die neu überarbeite Codes für das iFrame:
const noticeHeader = frDocument.createElement('h1') noticeHeader.style = `font-size: 20px` noticeHeader.innerHTML = ` <font color = black> Dieser Inhalt wird möglicherweise geladen von ${frame.getAttribute('data-service-provider-name') || getHostname(url)} cookies</font> `
const noticeInfo = frDocument.createElement('p') noticeInfo.innerHTML = ` Durch die Annahme greifen Sie auf einen Dienst zu, der von einem Drittanbieter bereitgestellt wird extern zu ${window.location.hostname} <br> <br> Hier sehen sie nochmal die <a href="https://www.servicecrewloreth.de/datenschutz.html"" target="_blank">Datenschutzerklärung</a> von ${window.location.hostname} `
const noticeHeader = frDocument.createElement('h1') noticeHeader.style = `font-size: 20px` noticeHeader.innerHTML = ` <font color = black> Es werden Cookies von ${frame.getAttribute('data-service-provider-name') || getHostname(url)} gespeichert.</font> `
const noticeInfo = frDocument.createElement('p') noticeInfo.innerHTML = ` Durch die Annahme greifen Sie auf einen Dienst zu, der von einem Drittanbieter extern für <i>${window.location.hostname}</i> bereitgestellt wird. <br> <br> Hier sehen sie die detailierte <a href="https://www.servicecrewloreth.de/datenschutz.html"" target="_blank">Datenschutzerklärung</a> von <i>${window.location.hostname}</i>. `
const noticeHeader = frDocument.createElement('h1') noticeHeader.style = `font-size: 20px` noticeHeader.innerHTML = ` <font color = black> Es werden Cookies von ${frame.getAttribute('data-service-provider-name') || getHostname(url)} gespeichert.</font> `
const noticeInfo = frDocument.createElement('p') noticeInfo.innerHTML = ` Durch die Annahme greifen Sie auf einen Dienst zu, der von einem Drittanbieter extern für <i>${window.location.hostname}</i> bereitgestellt wird. <br> <br> Hier sehen sie die detailierte <a href="https://www.servicecrewloreth.de/datenschutz.html"" target="_blank">Datenschutzerklärung</a> von <i>${window.location.hostname}</i>. `
Hallo, ihr lieben, wünsche euch ein schönes Wochenende.
Ein Kunde hat mich gefragt, ob man im Forum auch Shorts einbinden kann?
Ich tüftelte daran jetzt 4 Tage und habe es jetzt hinbekommen, hatte ja jetzt frei und habe jetzt die ganze Nacht daran gesessen und alle Variationen durchprobiert und habe es jetzt geschafft.
Ich habe hier Wolfgangs Script benutzt und ein wenig abgeändert, also das Haupt Lob geht an @Wolfgang. Habe nur kleinere Anpassung gemacht, hoffe, dass ich das soweit richtig gemacht habe.
Das Hauptscript läuft als Plugin, und für das Einfügen sind Forencodes nötig, damit das geht. Auch diese Arbeit stammt von Wolfgang, habe da nur den Namen geändert und das Bild in der "data-thumb ".
Also wie gesagt, ich möchte mich hier nicht mit falschen Federn schmücken, oder hier Unheil anfechten. Habe mir die ganze Zeit überlegt, was ich machen kann, dann kam mir die Idee, dass ja Wolfgang was gemacht hatte für die Videos. Habe nur seine Idee genommen und etwas abgeändert.
Also für die Shorts muss das Skript als Plugin unter "Untere Leiste - Header" anzulegen (bessere Ladezeiten)!
const noticeHeader = frDocument.createElement('h1') noticeHeader.style = `font-size: 20px` noticeHeader.innerHTML = ` <font color = black> Es werden Cookies von ${frame.getAttribute('data-service-provider-name') || getHostname(url)} gespeichert.</font> `
const noticeInfo = frDocument.createElement('p') noticeInfo.innerHTML = ` Durch die Annahme greifen Sie auf einen Dienst zu, der von einem Drittanbieter extern für <i>${window.location.hostname}</i> bereitgestellt wird. <br> <br> Hier sehen sie die detailierte <a href="https://www.servicecrewloreth.de/datenschutz.html"" target="_blank">Datenschutzerklärung</a> von <i>${window.location.hostname}</i>. `