IE에서 JavaScript를 사용하여 <object> 태그를 동적으로 추가하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/281246

문제

브라우저에 따라 적절한 ActiveX/플러그인을 처리하려면 Firefox용 embed 태그나 JavaScript가 포함된 Internet Explorer용 개체 태그를 추가해야 합니다.이 경우 플러그인이 누락될 수 있으므로 다운로드해야 합니다.Firefox에 동적으로 추가된 embed 태그가 예상대로 작동합니다.Internet Explorer에 동적으로 추가된 개체 태그는 전혀 아무 작업도 수행하지 않는 것 같습니다.객체 태그가 제대로 작동하려면 다음 속성이 필요합니다.

id ="SomeId" classid = "CLSID:{GUID}" codebase = "http://www.MyActicexSource.com/MyCuteActivex.CAB#Version=2,0,0,1"

일반적인 작업 아이디어나 방법이라도 좋을 것입니다.

감사해요!

도움이 되었습니까?

해결책

나는 이와 동일한 작업을 수행하고 OBJECT 태그에 필요한 모든 HTML을 JavaScript의 문자열에 배치하고 div 태그의 innerHTML을 OBJECT HTML로 바꾸면 IE에서 잘 작동합니다.

// something akin to this:
document.getElementById(myDivId).innerHTML = "<OBJECT id='foo' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'.....etc";

작동해야 합니다. 저에게는 아주 좋습니다. Windows Media Player를 페이지에 삽입하는 데 사용합니다.


업데이트:페이지의 로드 이벤트에서 실행되거나 사용자의 클릭에 대한 응답으로 실행되는 이벤트 핸들러를 통해 페이지가 로드된 후 위 코드를 실행합니다.당신이 해야 할 유일한 일은 빈 DIV 태그나 해당 요소의 태그를 통해 HTML 코드를 삽입할 수 있는 다른 유형의 태그를 갖는 것입니다. innerHTML 재산.


업데이트:내가 생각했던 것보다 더 많은 도움이 필요한 것 같군요?아마도 이것이 도움이 될 것입니다:

BODY 태그를 다음과 같이 만드세요: <body onload="loadAppropriatePlugin()">

페이지 어딘가에 이 항목을 로드하려는 위치에 빈 DIV 태그가 있어야 합니다. id "Foo" 같은 것의 속성입니다.

다음과 같은 코드가 있습니다. <script> 당신의 태그 <head> 부분:

function getIEVersion() { // or something like this
   var ua = window.navigator.userAgent;
   var msie = ua.indexOf("MSIE ");
   return ((msie > 0) ? parseInt(ua.substring(msie+5, ua.indexOf(".", msie))) : 0);
}

function loadAppropriatePlugin() {
    if(getIEVersion() != 0) { // this means we are in IE
        document.getElementById("Foo").innerHTML = "<OBJECT id='foo' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'.....etc";
    } else {
        // if you want to maybe do the same for FF and load that stuff...
    }
}

그게 도움이 되나요?

다른 팁

var object = document.createelement('object')
object.setAttribute('id','name')
object.setAttribute('clssid','CLSID:{}')

다른 매개 변수에 대해서도 동일합니다.

두 가지 방법.

1) 문서를 작성하십시오. 원하는 곳에 write

<script type="text/javascript">
<!--
   document.write("<object id=\"SomeId\" classid=\"CLSID:{GUID}\" codebase=\"http://www.MyActicexSource.com/MyCuteActivex.CAB#Version=2,0,0,1\"></object>");
-->
</script>

2) 태그의 InnerHTML 속성을 편집하십시오.

<div id="my-div"></div>
<script type="text/javascript">
<!--
   document.getElementById("my-div").innerHTML = "<object id=\"SomeId\" classid=\"CLSID:{GUID}\" codebase=\"http://www.MyActicexSource.com/MyCuteActivex.CAB#Version=2,0,0,1\"></object>";
-->
</script>

편집하다: JavaScript가 활성화 된 사람들은 객체를 볼 수 없기 때문에 JavaScript를 사용하지 않는 것이 가장 좋습니다. HTML에 배치하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top