Je pense que certaines personnes ici ne se sont pas vraiment concentrées sur votre question particulière. Il semble que le problème que vous rencontrez consiste à mettre le nombre aléatoire dans la page et à y connecter le lecteur. Il y a plusieurs façons de le faire. Le plus simple est avec une petite modification de votre code existant comme celui-ci pour document.write () le résultat dans la page. Je ne recommanderais normalement pas document.write (), mais puisque votre code est déjà en ligne et que ce que vous essayiez déjà de faire était de mettre le div en ligne, c'est le moyen le plus simple de le faire. Au point où vous avez le nombre aléatoire, vous utilisez simplement ceci pour le mettre et le div dans la page:
var randomId = "x" + randomString(8);
document.write('<div id="' + randomId + '">This text will be replaced</div>');
et puis, vous faites référence à cela dans le code de configuration de jwplayer comme ceci:
jwplayer(randomId).setup({
Et tout le bloc de code ressemblerait à ceci:
<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>
Une autre façon de le faire
Je pourrais ajouter ici à la fin que générer un nombre vraiment aléatoire juste pour créer un identifiant div unique est excessif. Vous n'avez pas besoin d'un nombre aléatoire. Vous avez juste besoin d'un identifiant qui n'existerait pas autrement dans la page. Les cadres comme YUI ont une telle fonction et tout ce qu'ils font est d'avoir une variable globale qui est incrémentée chaque fois que la fonction est appelée, puis de la combiner avec une chaîne de base unique. Cela peut ressembler à ceci:
var generateID = (function() {
var globalIdCounter = 0;
return function(baseStr) {
return(baseStr + globalIdCounter++);
}
})();
Et, dans la pratique, vous feriez quelque chose comme ceci:
var randomId = generateID("myMovieContainer");
document.write('<div id="' + randomId + '">This text will be replaced</div>');
jwplayer(randomId).setup({