2015-08-14 4 views
0

Я хочу использовать переменную, которую я определяю ранее в объекте. У меня есть следующий код:Использование переменных в объектах Javascript

<object type="application/x-shockwave-flash" height="378" width="800" data="//www-cdn.jtvnw.net/swflibs/TwitchPlayer.swf" bgcolor="#000000"> 
    <param name="allowFullScreen" value="false" /> 
    <param name="allowScriptAccess" value="always" /> 
    <param name="allowNetworking" value="all" /> 
    <param name="movie" value="//www-cdn.jtvnw.net/swflibs/TwitchPlayer.swf" /> 
    <param name="flashvars" value="channel=" + user_channelname + "&auto_play=true&start_volume=25" /> 
</object> 

Я в принципе хочу, чтобы вставить user_channelname в качестве значения для "channel="

+2

Ну вы не можете сделайте это ... вам нужно установить этот атрибут в фактическом JS-коде ... или использовать код сервера для его записи. – tymeJV

+0

Почему JS такой сложный :(Извините, но я полный noob, и я только хотел вставить переменную ... почему это так сложно в JS: D – Splinti

+1

Сложная часть здесь заключается в том, что браузеры разделяют DOM (HTML) и скрипты (JS). Это артефакт HTML, существующий до JS. – ssube

ответ

1

Вы можете использовать Javascript для этого:

Если установить идентификатор к вашему <param>

<param id="flashvars" name="flashvars" /> <!--would not recommend; see below--> 
<script> 
    window.onload = function() { 
     var user_channelname = "What you want your variable to be." 
     document.getElementById("flashvars").value = "channel=" + user_channelname + "&auto_play=true" 
    } 
</script> 

Пояснение:document.getElementById получает доступ (первый) элемент с конкретным id. .value позволяет либо захватить значение, либо изменить его, как указано выше. См. Больше здесь: http://www.w3schools.com/jsref/met_doc_getelementbyid.asp.
Подробнее о window.onload, см. Здесь https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onload. Но в основном, когда окно нагрузки, она автоматически установит переменную (до этого не было ничего «вызов» функций document.getElementById


Post Script:. Мне кажется, что вы используете name поля ваших элементов, таким образом, идентифицировать их, однако, в JavaScript, он имеет тенденцию быть проще (и больше смысла, думаю, уникальные удостоверения личности т.е. лицензии водителей.), если вы использовали id поле вместо:. например

<object type="application/x-shockwave-flash" height="378" width="800" data="//www-cdn.jtvnw.net/swflibs/TwitchPlayer.swf" bgcolor="#000000"> 
    <param id="allowFullScreen" value="false" /><param name="allowScriptAccess" value="always" /> 
    <param id="allowNetworking" value="all" /> 
    <param id="movie" value="//www-cdn.jtvnw.net/swflibs/TwitchPlayer.swf" /> 
    <param id="flashvars" value="channel=" + user_channelname + "&auto_play=true&start_volume=25" /> 
</object> 
+0

Я обновил свой вопрос, умеете ли вы его использовать? – Splinti

+0

Я не могу изменить это, я думаю, потому что это какое-то вложение. Я встраиваю твип-плеер, а 'user_channelname' говорит, какой канал для встраивания .... Поэтому я не могу изменить эти поля' name', я думаю – Splinti

+0

Можете ли вы добавить поля 'id'? Если нет, вы можете попробовать использовать 'document.getElementsByName (« flashvars ») [0] .value = ...' См. Http://stackoverflow.com/questions/10306129/javascript-get-element-by-name – aznbanana9