innerHTML로 JavaScript 코드를 교체 하시겠습니까?
-
19-09-2019 - |
문제
내가해야 할 간단한 일은 일반 SWF 플레이어가 내 요구를 충족시키는 것처럼 보이지 않으므로이 해결 방법을해야한다고 생각합니다. 고품질과 품질이 낮은 .FLV 비디오를 전환 할 수 있어야합니다.
그래서 나는 JavaScript의 내부를 변경하기 위해 Onclick 이벤트가있는 두 개의 버튼을 가지고 있다고 생각하지만 정확히 방법을 모른다는 것을 깨달았습니다. JavaScript 한 줄의 ID를 만들 수 있습니까, 아니면 모든 것을 교체해야합니까? 내 코드는 다음과 같습니다.
<script type="text/javascript">
var so = new SWFObject('/lessons/videos/player.swf','mpl','610','480','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addVariable('file','/lessons/videos/BukaTiende.flv');
so.write('mediaspace');
</script>
</div></div>
<input type="button" value="low"><input type="button" value="high">
위의 코드에서 변경해야 할 것은/lessons/videos/bukatiende_lower.flv와 같은 것에 대한 "/nessons/videos/bukatiende.flv"링크 만 있습니다.
getElementById와 함께 할 수 있습니까?
나는 jQuery가 있습니다.
해결책
함수에서 해당 명령을 캡슐화하고 클릭의 매개 변수로 하나 또는 다른 비디오로 실행하는 것이 좋습니다.
당신은 당신이 주위에 jQuery를 가지고 있다고 말 했으므로, 그것을 사용하여 버튼에 클릭 할 수도 있습니다.
<script type="text/javascript">
function launch_video(quality){
video_qual=(quality=='high')? '' : '_lower';
var so = new SWFObject('/lessons/videos/player.swf','mpl','610','480','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addVariable('file','/lessons/videos/BukaTiende'+video_qual+'.flv');
so.write('mediaspace');
}
$(document).ready(function(){
$('.vid_button').click(function(){launch_video($(this).val());});
});
</script>
</div></div><!-- I guess I'll leave those random divs in there-->
<input class='vid_button' type="button" value="low">
<input class='vid_button' type="button" value="high">
다른 팁
비디오의 URL을 매개 변수로 취한 기능을 작성한 다음 해당 Paremeter를 사용하여 SWFOBJECT를 호출해야합니다.주목하십시오 AddVariable 우리는 함수의 매개 변수를 사용합니다)
function loadVideo( pUrl )
{
var so = new SWFObject('/lessons/videos/player.swf','mpl','610','480','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addVariable('file', pUrl);
so.write('mediaspace');
}
그런 다음 처음으로 호출하십시오
<script type="text/javascript">
loadVideo('/lessons/videos/BukaTiende.flv');
</script>
ASLO 버튼에 ID를 추가하여 참조 할 수 있습니다.
<input type="button" value="low" id="low">
<input type="button" value="high" id="high">
그런 다음 버튼에 클릭 이벤트를 추가합니다.
<script type="text/javascript">
$(document).ready(
function(){
$('#low').click( function(){ loadVideo('/path/to/lowversion.flv') } );
$('#high').click( function(){ loadVideo('/path/to/highversion.flv') } );
}
);
</script>
사용자가 버튼을 클릭 할 때 페이지에서 내장 된 객체를 제거한 다음 페이지에 추가하는 스크립트를 다시 시작하지만 변수 값이 다른 스크립트를 다시 실행할 수 있습니다. swfobject를 div 안에 넣으면 innerhtml = ""를 설정하여 DIV를 지울 수 있습니다.