kleines Javascript Skript
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
angebot
ansatz
aufruf
besten verstecke
button
code
dank
dokument
option
span
stehen
tag
unterlassen
url
variable speichern
verwendeten system
video
vier
vorgestellte video
warten
-
Ich bräuchte ein kleines Javascript Skript. Und zwar habe ich auf meiner Website 2 Mirrors für jedes Video im tag/angebot">Angebot. Nun soll beim aufruf der Startseite, auf der das Vorgestellte Video, das von 2 verschiedenen Websiten gehostet wird, ist, ein Zufallswert "berechnet" werden, um genauer zu sein ein Wert zwischen 1 und 2. Falls der Wert 1 ist soll der Player x aufgerufen werden, bei 2 der Player y. Leider bin ich mit Javascript ziehmlich eingerostet und weiß deshalb zwar, das es recht einfach zu bewerkstelligen ist, leider aber nicht, wie ich es bewerkstelleigen soll. Darum wäre ich euch für den Skript dankbar. Am besten wäre es natürlich, wenn man den Skript einfach auf 3 oder mehr Player erweitern kann, das müsste jetzt aber nicht unbedingt sein, ich will ja nichts zahlen, und ich will nicht zuviel verlangen.
Ich weiß ja die Beiträge zu schätzen, in denen andere Lösungswege und Alternativen dargelegt werden, aber diese bitte hier unterlassen, das Script muss unbedingt in Javascript geschrieben sein.
Danke schonmal im Vorraus für den Script.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Math.random() gibt dir einen langen Wert von 0 bis 0.99999999999999999 (17 Nachkommastellen, habe mehrmals getestet, das ist aber variabel, auch nach dem verwendeten System) zurück. Du prüfst einfach, ob dieser Wert kleiner als 1/2 ist, oder nicht. Willst du 3 oder mehr Optionen, musst du diesen Wert in eine Variable speichern und dann prüfen, ob er kleiner als 1/3 ist und wenn nicht, ob er kleiner als 2/3 ist, oder nicht. Bei vier wieder mit einem mehr.
Beitrag zuletzt geändert: 31.8.2011 20:55:10 von drafed-map -
drafed-map schrieb:
Math.random() gibt dir einen langen Wert von 0 bis 0.99999999999999999 (17 Nachkommastellen, habe mehrmals getestet, das ist aber variabel, auch nach dem verwendeten System) zurück. Du prüfst einfach, ob dieser Wert kleiner als 1/2 ist, oder nicht. Willst du 3 oder mehr Optionen, musst du diesen Wert in eine Variable speichern und dann prüfen, ob er kleiner als 1/3 ist und wenn nicht, ob er kleiner als 2/3 ist, oder nicht. Bei vier wieder mit einem mehr.
ok danke. Jetzt müsste ich nur noch wissen, wie ich den Player am besten verstecke. Hättest du da auch noch einen Vorschlag? -
Dazu bräuchte ich einen Link zu deiner Seite, denn ich weiß ja nicht, wie du das machen willst.
-
drafed-map schrieb:
Dazu bräuchte ich einen Link zu deiner Seite, denn ich weiß ja nicht, wie du das machen willst.
Ich habe 2 Player, besser gesagt ein Livestream. Der erste wird bei <objekt> Tag eingebunden, der andere mit iframe. Vorsichtshalber hier der Code:
<iframe height="360" width="640" frameborder="0" src="http://www.own3d.tv/liveembed/92221"></iframe>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="296" id="utv879192"><param name="flashvars" value="autoplay=false&brand=embed&cid=9195022&v3=1"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="movie" value="http://www.ustream.tv/flash/viewer.swf"/><embed flashvars="autoplay=false&brand=embed&cid=9195022&v3=1" width="480" height="296" allowfullscreen="true" allowscriptaccess="always" id="utv879192" name="utv_n_326682" src="http://www.ustream.tv/flash/viewer.swf" type="application/x-shockwave-flash" /></object>
Jetzt soll aber immer nur einer der Streams angezeigt werden. Welcher, das soll per zufall entschieden werden.
Das einzige was ich bisher gefunden habe ist dieses Spoiler System, wie man es auch aus Foren kennt.
<script type="text/javascript">
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null ) node = document;
if ( tag == null ) tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
var j = 0;
for (var i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els.className) ) {
classElements[j] = els; j++;}}
return classElements;}
window.onload = function() {
var spoilers = getElementsByClass('spoiler');
for(x in spoilers) {
spoilers[x].getElementsByTagName('span')[0].style.display = 'none';}};
function spoiler(obj) {
var st = obj.getElementsByTagName('span')[0].style;
st.display = (st.display == 'none' || st.display == '') ? 'block' : 'none';}
</script>
<p class="spoiler">
<input type="button" value="Show/Hide" onclick="spoiler(this.parentNode);" />
<span></span></p>
Alles im Span wird per Button entweder angezeigt oder versteckt. Das könnte man vielleicht als Grundgerüst/Ansatz nehmen, jedoch bin ich noch auf keine Lösung gestoßen. Wie gesagt, ich bin etwas eingerostet
Beitrag zuletzt geändert: 31.8.2011 22:43:26 von usertrend -
Das solltest du ganz anders machen, denn das ist viel zu umständlich. Du nimmst einen Div und gibst ihm eine ID. Per
fügst du den HTML-Code ein. Das machst du beim Onclick der Buttons.document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code';
-
drafed-map schrieb:
Das solltest du ganz anders machen, denn das ist viel zu umständlich. Du nimmst einen Div und gibst ihm eine ID. Per
fügst du den HTML-Code ein. Das machst du beim Onclick der Buttons.document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code';
Ok ich hab mir jetzt was mit meinem restwissen zusammengeschustert, aber irgendwie klappt das nicht. Könntest du das verbessern?
<script type="text/javascript"> var Math.random() = zufallz; if ( zufallz <= '0.5') { document.write('<html> <p><iframe frameborder="0" width="520" height="325" src="http://www.dailymotion.com/embed/video/xk5cra"></iframe></p> </html>'); } else { document.write('<html><iframe frameborder="0" width="520" height="325" src="http://www.dailymotion.com/embed/video/xk59gh"></html>'); }
Ich hab jetzt als Beispiel einfach mal den Dailymotion Player reingemacht. Der obere verweist auf ein anderes Video als der Untere. Wenn ich den Code jetzt ausprobiere hängt sich die ganze Page auf, darum vermute ich einen Fehler ^^
Beitrag zuletzt geändert: 31.8.2011 23:33:38 von usertrend -
Links muss der Variablenname stehen und rechts das, das in der Variable gespeichert werden soll.
Außerdem muss man warten, bis das Dokument geladen ist, wenn man etwas mit dem Dokument machen will. Bei zwei Playern schreibst du
Bei dreiwindow.onload = function() { if(Math.random() < 0.5) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des ersten Players'; } else { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des zweiten Players'; } }
und bei vier Playernwindow.onload = function() { var random = Math.random(); if(random < 1/3) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des ersten Players'; } else if(random < 2/3) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des zweiten Players'; } else { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des dritten Players'; } }
window.onload = function() { var random = Math.random(); if(random < 1/4) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des ersten Players'; } else if(random < 2/4) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des zweiten Players'; } else if(random < 3/4) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des dritten Players'; } else { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des vierten Players'; } }
Beitrag zuletzt geändert: 31.8.2011 23:37:04 von drafed-map -
drafed-map schrieb:
Links muss der Variablenname stehen und rechts das, das in der Variable gespeichert werden soll.
Außerdem muss man warten, bis das Dokument geladen ist, wenn man etwas mit dem Dokument machen will. Bei zwei Playern schreibst du
Bei dreiwindow.onload = function() { if(Math.random() < 0.5) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des ersten Players'; } else { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des zweiten Players'; } }
und bei vier Playernwindow.onload = function() { var random = Math.random(); if(random < 1/3) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des ersten Players'; } else if(random < 2/3) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des zweiten Players'; } else { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des dritten Players'; } }
window.onload = function() { var random = Math.random(); if(random < 1/4) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des ersten Players'; } else if(random < 2/4) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des zweiten Players'; } else if(random < 3/4) { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des dritten Players'; } else { document.getElementById('Die ID des Divs').innerHTML = 'HTML-Code des vierten Players'; } }
Vielen dank, es funktioniert super!
Du gibst super Hilfen, mach weiter so!
Beitrag zuletzt geändert: 31.8.2011 23:49:28 von usertrend -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage