En supposant que la variable contient l'URL, comme ceci:
$(document).ready(function(){
$('#player').youTubeEmbed("<%=escape_javascript(@clip)%>");
});
(Désolé, a raté le fait que le JavaScript n'a pas été dans le même fichier que le HTML - et il shouldn » t être!)
Assuuming la variable contient l'URL, si vous ne voulez pas l'URL, vous pouvez l'intégrer dans une variable de page comme si (remplacer le code div
dans show.html.erb avec les éléments suivants):
<script type='text/javascript'>
window.myStuff = {
clipUrl: "<%=escape_javascript(@clip)%>"
};
</script>
... (ou
<script type='text/javascript'>
var myStuff = {
clipUrl: "<%=escape_javascript(@clip)%>"
};
</script>
... qui est à peu près la même chose).
... et vous pouvez l'utiliser comme ceci:
$(document).ready(function(){
$('#player').youTubeEmbed(window.myStuff.clipUrl);
});
Lors de la sortie de la valeur d'une variable de cette façon, vous devez vous assurer que ce qui est écrit en JavaScript finit par être valide. Ainsi, par exemple, si la variable @clip
contient un "
ou un \
, vous devez vous assurer que le "
est transformé en \"
et que toute barre oblique inversée est transformée en \\
. Jakub Hampl a utilement souligné la fonction escape_javascript
pour cela, que j'ai édité dans les exemples de code.
En faisant cela, cela signifie que nous mettons un nouveau symbole sur window
. J'ai fait de notre nouveau symbole un objet de sorte que si nous devons faire cela avec d'autres choses, nous pouvons les inclure dans le même objet afin de ne pas avoir de symboles partout (créant beaucoup de symboles globaux — qui est pour ainsi, window
propriétés — tend à devenir un problème de maintenance, mieux évité).Ainsi, par exemple, si vous aviez deux clips:
<script type='text/javascript'>
window.myStuff = {
someNiftyClip: "<%=escape_javascript(@clip)%>",
someOtherNiftyClip: "<%=escape_javascript(@anotherClip)%>"
};
</script>
hors sujet: Dans la ligne d'appel youTubeEmbed
, je constate ajouté un point-virgule à la fin. Mieux vaut ne pas compter sur JavaScript semicolon insertion.
A quoi ressemble votre sortie rendue? –