J'ai un petit site, pas encore en ligne mais ça n'a pas d'importance. A l'intérieur, j'ai deux cadres:
<html>
<frameset border="transparent" cols="63%,37%">
<frame src="A.html" name="A" NORESIZE>
<frame src="B.html" name="B" NORESIZE>
</frameset>
</html>
Dans le cadre A, il y a un bouton.
<html>
<body>
<input onClick="#" type="button"/>
</body>
</html>
Dans l'image B, il y a une vidéo youtube:
<html>
<body>
<object id="obj" name="obj" width="100%" height="100%">
<param id="param" name="movie" value="http://www.youtube.com/url"/>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"/>
<embed id="embed" name="embed" src="http://www.youtube.com/url"" type="application/x-shockwave-flash" width="100%" height="100%" allowfullscreen="true"/>
</object>
</body>
</html>
Maintenant, j'essaie de laisser la source de l'incorporation et la valeur du paramètre (film nommé) changer dans une autre URL.
J'ai essayé beaucoup de codes. Les codes Javascript suivants, par exemple, ne fonctionneront pas:
top.frames["B"].document.getElementById("movie").value = 'http://www.youtube.com/otherurl';
top.frames["B"].document.getElementById("embed").src = 'http://www.youtube.com/otherurl';
Donc, si quelqu'un sait comment bien faire ces codes ou comment obtenir le même résultat avec d'autres codes, j'apprécierais vraiment.
Merci de vous attendre, VVW.
4 réponses
Merci à tous ceux qui ont répondu. J'ai expérimenté un peu tous les codes et mon résultat est en fait très simple.
top.frames["divtest"].document.getElementById("embed").setAttribute('src','http://www.youtube.com/v/lPMx86wXaKY?version=3&hl=nl_NL');
top.frames["divtest"].document.getElementById("param").setAttribute('value','http://www.youtube.com/v/lPMx86wXaKY?version=3&hl=nl_NL');
Je me demande pourquoi je n'ai pas proposé cela plus tôt, donc je m'excuse auprès de tout le monde et je vous remercie tous pour toute l'aide.
VVW
Votre DOM est broketh:
Modifier <param id="param" name="movie" value="http://www.youtube.com/url"
À .. <param id="param" name="movie" value="http://www.youtube.com/url" />
Du parent auquel vous ne pouvez pas accéder ni manipuler les éléments dans le cadre enfant, c'est une mesure de sécurité, sinon il serait facile de trouver des sites malveillants qui enveloppent les sites bancaires dans des iframes et le parent lirait le mot de passe que vous entrez .
Ne faites pas de cadres.
Utilisez l 'API YouTube JavaScript Player. Appelez player.loadVideoById()
. Assurez-vous que votre URL src d'origine contient &enablejsapi=1
:
top.frames["B"].document.getElementById("embed").loadVideoById(id);
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.