2011-02-10 4 views
0

AJAX 깊은 링크 된 사이트가 있습니다.AJAX 딥 링크 된 사이트에 포함 된 개체에 대한 스크립트를 실행하는 방법

<html> 
    <head> 
     ... 
    </head> 
    <body> 
     ... 
     <!-- AJAX will change the content of this div tag --> 
     <div id="ajax"> 
      ... 
     </div> 
     ... 
    </body> 
</html> 

그래서 여기에 생각이 AJAX는 URL (#query)의 조각 값에 따라 적절하게 <div id="ajax">의 내용을 채우는 것입니다 : 기본 구조는 다음과 같은 것입니다.

여기에 문제가 있습니다. 이걸 고려하세요. 사용자가 페이지 #query로 이동,이 후

<html> 
    <head> 
     ... 
    </head> 
    <body> 
     ... 
     <!-- AJAX will change the content of this div tag --> 
     <div id="ajax"> 
      <!-- content of the home page --> 
      ... 
     </div> 
     ... 
    </body> 
</html> 

: (#home) 다음과 같은로드 - 사용자가 처음에이 페이지를로드합니다. 이 페이지를로드하기 위해 AJAX는 <div id="ajax"> 태그의 innerHTML을 변경합니다. #query의 콘텐츠에 포함 된 개체 (이 예에서는 FlowPlayer를 사용하는 포함 된 비디오)가 있다고 가정 해 보겠습니다. AJAX가 끝나면 코드는 다음과 같이 보입니다.

<script> 
    flowplayer("player", "flowplayer.swf", { 
     clip: "video.mp4" 
    }); 
</script> 

나는이 문제를 해결하거나 내가 뭘 어떻게 : 그래서 여기

<html> 
    <head> 
     ... 
    </head> 
    <body> 
     ... 
     <!-- AJAX will change the content of this div tag --> 
     <div id="ajax"> 
      <!-- Flowplayer JavaScript component --> 
      <script src="flowplayer-3.2.4.min.js"></script> 
      <!-- The player container --> 
      <div id="player" style="width:720px;height:480px;"></div> 
      <!-- Player installation --> 
      <script> 
       flowplayer("player", "flowplayer.swf", { 
        clip: "video.mp4" 
       }); 
      </script> 
     </div> 
     ... 
    </body> 
</html> 

내가이 작업을 수행 할 때, 다음과 같은 스크립트는 결코 실행하지 않으며, 따라서 비디오가 결코로드하지 질문입니다 잘못된?

도움을 주시면 감사하겠습니다.

편집 나는이 작업을 수행하여 ajax div 태그의 HTML 콘텐츠를 교환하는 데 사용

진행 보고서 :

이제
document.getElementById("ajax").innerHTML = xmlhttprequest.responseText; 

나는이로 변경되었습니다

var element = document.createElement("div"); 
element.setAttribute("id", "ajax"); 
element.innerHTML = xmlhttprequest.responseText; 
toswap = document.getElementById("ajax"); 
toswap.parentNode.replaceChild(element, toswap); 

이를 Firefox에서 문제가 해결되어 <script>이 실행되지만 Chrome 및 IE에서는 여전히 작동하지 않습니다.

아이디어가 있으십니까?

+0

무엇처럼 아약스 코드를 봐 - 컨텐츠를 가져와 페이지에 DOM 조각을 추가하는 코드? 아약스를 돕기 위해 JavaScript 라이브러리를 사용하고 있습니까? – Pointy

+0

딥 링크에 SWFAddress를 사용하고 있습니다. 그런 다음 XMLHttpRequest를 사용하여 검색하려는 파일의 내용을 가져온 다음 HTML 내용을 바꾸기 위해'document.getElementById ("ajax"). innerHTML = xmlhttprequest.responseText'를 수행합니다. – miki725

답변