js가 플래시 객체를 얻는 것과 관련하여 인터넷에 많은 예가 있으며 나 또한 많은 방법을 시도했습니다.
모두 사용할 수 있지만 가장 원하는 것이 없습니다.
나중에 Baidu를 살펴보니 매우 표준화되어 있고 모든 상황을 고려했지만 코드의 양이 낙관적이지는 않습니다. 🎜> 이전 코드는 전후가 거의 20라인이고, 압축후에는 864바이트가 있습니다.
그래서 이 글이 탄생했습니다.
인터넷에서 수집한 몇 가지 만족스러운 방법을 테스트하고 공유하고 싶습니다.
또한 호환성 테스트에 도움을 주시길 바랍니다. 호환되지 않는 부분이 있으면 아래에 메시지를 남겨주시면 코드를 테스트하고 수정할 수 있습니다.
아래 코드를 살펴보겠습니다.
function getFlashMovieObject( movieName ) {
if (window .document[movieName]) {
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet") == -1) {
if (document .embeds && document.embeds[movieName])
return document.embeds[movieName]
} else { // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
return document.getElementById(movieName);
}
}
이 방법은 문서에서 값을 얻은 경우 직접 반환됩니다. 아니, 저자는 대체물과 호환되는 삽입을 자주 사용합니다.
물론 IE에는 특별한 처리가 필요하지만 여기 저자는 getElementById를 자주 사용하는 반면 다른 곳에서는 window를 더 자주 사용합니다.
물론 getElementById가 정확합니다. 삽입에는 이름만 있고 ID는 없기 때문에 객체의 ID를 사용합니다.
var flash = document["myFlash"] || window ["myFlash"];
이 방법은 비교적 간결하고 명확하므로 너무 장황하지는 않습니다.
var flash = document["myFlash"] ;
내 컴퓨터의 다양한 브라우저 가상 머신에서 IE6-10이 모두 테스트를 통과했기 때문에 여러 버전을 읽은 후 직접 작성했습니다.
물론 공식적으로 사용된다면 1번을 선택하겠지만, 가끔 특별한 상황에서 여러 브라우저와 호환될 필요가 없다면 이것을 고려해 볼 수 있습니다.
다음은 세 가지 방법으로 플래시 객체를 얻은 후 플래시를 제어하고 테스트하는 실제 예입니다.
테스트를 통과할 수 없다고 판단되는 경우, 브라우저 버전 번호와 통과할 수 없는 솔루션을 남겨주세요.