Myślę, że niektórzy ludzie tutaj nie skupili się tak naprawdę na twoim konkretnym pytaniu. Wygląda na to, że masz problem z umieszczeniem losowej liczby na stronie i podłączeniem do niej gracza. Można to zrobić na kilka sposobów. Najprościej jest wprowadzić niewielką zmianę w istniejącym kodzie, taką jak document.write () wynik na stronie. Normalnie nie polecałbym document.write (), ale ponieważ twój kod jest już wbudowany, a to, co już próbowałeś zrobić, to wstawienie div w linii, jest to najprostszy sposób. W miejscu, w którym masz liczbę losową, po prostu użyj tego, aby umieścić ją i element div na stronie:
var randomId = "x" + randomString(8);
document.write('<div id="' + randomId + '">This text will be replaced</div>');
a potem odnosisz się do tego w kodzie konfiguracyjnym jwplayera w ten sposób:
jwplayer(randomId).setup({
A cały blok kodu wyglądałby tak:
<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>
Inny sposób na zrobienie tego
Na koniec mógłbym dodać, że wygenerowanie prawdziwie losowej liczby tylko w celu utworzenia unikalnego identyfikatora DIV jest przesadą. Nie potrzebujesz liczby losowej. Potrzebujesz tylko identyfikatora, który w innym przypadku nie istniałby na stronie. Struktury takie jak YUI mają taką funkcję i wszystko, co robią, to zmienna globalna, która jest zwiększana za każdym razem, gdy funkcja jest wywoływana, a następnie łączy ją z unikalnym ciągiem bazowym. Może wyglądać mniej więcej tak:
var generateID = (function() {
var globalIdCounter = 0;
return function(baseStr) {
return(baseStr + globalIdCounter++);
}
})();
A potem w praktyce zrobiłbyś coś takiego:
var randomId = generateID("myMovieContainer");
document.write('<div id="' + randomId + '">This text will be replaced</div>');
jwplayer(randomId).setup({