Penso che alcune persone qui non si siano davvero concentrate sulla tua particolare domanda. Sembra che il problema che hai è mettere il numero casuale nella pagina e agganciare il giocatore ad esso. Ci sono molti modi per farlo. Il più semplice è con una piccola modifica al codice esistente come questo per document.write () il risultato nella pagina. Normalmente non consiglierei document.write (), ma poiché il tuo codice è già inline e quello che stavi già provando a fare era inserire il div inline, questo è il modo più semplice per farlo. Nel punto in cui hai il numero casuale, lo usi semplicemente per inserirlo e il div nella pagina:
var randomId = "x" + randomString(8);
document.write('<div id="' + randomId + '">This text will be replaced</div>');
e poi, ti riferisci a quello nel codice di configurazione di jwplayer in questo modo:
jwplayer(randomId).setup({
E l'intero blocco di codice sarebbe simile a questo:
<script type='text/javascript' src='jwplayer.js'></script>
<script type='text/javascript'>
function randomString(length) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghiklmnopqrstuvwxyz'.split('');
if (! length) {
length = Math.floor(Math.random() * chars.length);
}
var str = '';
for (var i = 0; i < length; i++) {
str += chars[Math.floor(Math.random() * chars.length)];
}
return str;
}
var randomId = "x" + randomString(8);
document.write('<div id="' + randomId + '">This text will be replaced</div>');
jwplayer(randomId).setup({
'flashplayer': 'player.swf',
'file': 'http://www.youtube.com/watch?v=4AX0bi9GXXY',
'controlbar': 'bottom',
'width': '470',
'height': '320'
});
</script>
Un altro modo per farlo
Potrei aggiungere qui alla fine che generare un numero veramente casuale solo per creare un ID div univoco è decisamente eccessivo. Non hai bisogno di un numero casuale. Hai solo bisogno di un ID che altrimenti non esisterebbe nella pagina. I framework come YUI hanno una tale funzione e tutto ciò che fanno è avere una variabile globale che viene incrementata ogni volta che la funzione viene chiamata e quindi combinarla con una stringa di base univoca. Può assomigliare a questo:
var generateID = (function() {
var globalIdCounter = 0;
return function(baseStr) {
return(baseStr + globalIdCounter++);
}
})();
E, quindi, nell'uso pratico, faresti qualcosa del genere:
var randomId = generateID("myMovieContainer");
document.write('<div id="' + randomId + '">This text will be replaced</div>');
jwplayer(randomId).setup({