복붙노트

[JQUERY] 의 jQuery .load () 호출은로드 된 HTML 파일에서 자바 스크립트를 실행하지 않습니다

JQUERY

의 jQuery .load () 호출은로드 된 HTML 파일에서 자바 스크립트를 실행하지 않습니다

해결법


  1. 1.당신은 HTML, 머리와 몸 태그를 포함하여 사업부로 전체 HTML 페이지를로드하고 있습니다. 당신이 부하를하고 당신이로드하는 HTML의 구멍 스크립트, 종료 스크립트와 자바 스크립트 코드를하면 어떻게됩니까?

    당신은 HTML, 머리와 몸 태그를 포함하여 사업부로 전체 HTML 페이지를로드하고 있습니다. 당신이 부하를하고 당신이로드하는 HTML의 구멍 스크립트, 종료 스크립트와 자바 스크립트 코드를하면 어떻게됩니까?

    다음은 드라이버 페이지입니다 :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"> 
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>jQuery Load of Script</title>
            <script type="text/javascript" src="http://www.google.com/jsapi"></script>
            <script type="text/javascript">
                google.load("jquery", "1.3.2");
            </script>
            <script type="text/javascript">
                $(document).ready(function(){
                    $("#myButton").click(function() {
                        $("#myDiv").load("trackingCode.html");
                    });
                 });
             </script>
        </head>
        <body>
            <button id="myButton">Click Me</button>
            <div id="myDiv"></div>
        </body>
    </html>
    

    여기 trackingCode.html의 내용입니다 :

    <script type="text/javascript">
        alert("Outside the jQuery ready");
        $(function() {
            alert("Inside the jQuery ready");
        });
     </script>
    

    이 사파리 4에서 나를 위해 작동합니다.

    업데이트 : 추가 DOCTYPE 및 HTML 네임 스페이스 내 테스트 환경에서 코드와 일치합니다. 파이어 폭스 3.6.13 및 예제 코드 작품 테스트.


  2. 2.

    $("#images").load(location.href+" #images",function(){
        $.getScript("js/productHelper.js"); 
    });
    

  3. 3.존 피크의 솔루션의 다른 버전은 직전이 나를 위해 잘 작동합니다 :

    존 피크의 솔루션의 다른 버전은 직전이 나를 위해 잘 작동합니다 :

    jQuery.ajax({
       ....
       success: function(data, textStatus, jqXHR) {
           jQuery(selecteur).html(jqXHR.responseText);
           var reponse = jQuery(jqXHR.responseText);
           var reponseScript = reponse.filter("script");
           jQuery.each(reponseScript, function(idx, val) { eval(val.text); } );
       }
       ...
    });
    

  4. 4.나는이 다소 오래된 게시물입니다 알지만 누군가를 위해 유사한 솔루션을 찾고 해당 페이지로 오는 ...

    나는이 다소 오래된 게시물입니다 알지만 누군가를 위해 유사한 솔루션을 찾고 해당 페이지로 오는 ...

    http://api.jquery.com/jQuery.getScript/


  5. 5.당신이 동적으로 생성 된 요소로 HTML 필드를로드하는 경우에 작동하지 않습니다.

    당신이 동적으로 생성 된 요소로 HTML 필드를로드하는 경우에 작동하지 않습니다.

    $('body').append('<div id="loader"></div>');
    $('#loader').load('htmlwithscript.htm');
    

    내가 불을 지르고의 DOM을보고 전혀 스크립트 노드 만 HTML 내 CSS 노드가 없습니다.

    사람이 건너왔다?


  6. 6.당신은 거의 있어요. 당신은 단지 스크립트를로드 할 JQuery와주기 :

    당신은 거의 있어요. 당신은 단지 스크립트를로드 할 JQuery와주기 :

    $("#myBtn").click(function() {
        $("#myDiv").load("trackingCode.html script");
    });
    

  7. 7.나는 HTML 로딩 기능을 위해 다음과 같은 jQuery 플러그인을 작성 : http://webtech-training.blogspot.in/2010/10/dyamic-html-loader.html

    나는 HTML 로딩 기능을 위해 다음과 같은 jQuery 플러그인을 작성 : http://webtech-training.blogspot.in/2010/10/dyamic-html-loader.html


  8. 8.trackingCode.html에서이 테스트합니다 :

    trackingCode.html에서이 테스트합니다 :

    <script type="text/javascript">
    
        $(function() {
    
           show_alert();
    
           function show_alert() {
               alert("Inside the jQuery ready");
           }
    
        });
     </script>
    

  9. 9.스크립트가 한 번로드,하지만 반복 호출이 스크립트를 실행하지 않을 어디이 다 퉜다.

    스크립트가 한 번로드,하지만 반복 호출이 스크립트를 실행하지 않을 어디이 다 퉜다.

    그것은 후 () .load 체인 후 대기 표시기를 표시 .html 중에서 ()를 사용에 문제가 밝혀졌다.

    // Processes scripts as expected once per page load, but not for repeat calls
    $("#id").html("<img src=wait.gif>").load("page.html");
    

    내가 그들에게 별도의 전화를했을 때 예상대로, 내 인라인 스크립트 때마다로드.

    // Without chaining html and load together, scripts are processed as expected every time
    $("#id").html("<img src=wait.gif>");
    $("#id").load("page.html");
    

    추가 연구를 위해, 거기에 있습니다 .load의 두 가지 버전 ()

    "HTML".html과 ()을 반환 내용을 복용하고 호출하면 DOM에 그 내용을 넣어 : (URL을 후 선택없이) 간단한의 .load () 호출은 단순히 데이터 유형 $ 아약스 ()를 호출하기위한 속기이다 . 그리고 데이터 유형에 대한 데이터 문서는 "HTML은"명확하게 "는 DOM에 삽입 할 때 포함 스크립트 태그가 평가됩니다."상태 http://api.jquery.com/jquery.ajax/ 그래서 .load ()는 공식적으로 인라인 스크립트를 실행합니다.

    복잡 .load () 호출이 이러한 하중뿐만 선택기 ( "page.html #content")를 갖는다. 스크립트 결코이 경우 https://forum.jquery.com/topic/the-load-function-and-script-blocks#14737000000752785 : 방법 것을 사용하면 이와 같은 기사에서 논의하지 않기 때문에, jQuery를 의도적으로 스크립트 태그 필터링 실행조차 한 번.


  10. 10.그럼 난 단지 파이어 폭스 일어날 듯 같은 문제가 있고, 나는 .load () 나는 PHP 파일을 대한 기존의 프론트 엔드를 수정 이후를 제외하고 다른 JQuery와 명령을 사용하지 수 ...

    그럼 난 단지 파이어 폭스 일어날 듯 같은 문제가 있고, 나는 .load () 나는 PHP 파일을 대한 기존의 프론트 엔드를 수정 이후를 제외하고 다른 JQuery와 명령을 사용하지 수 ...

    어쨌든는 .load () 명령을 사용 후, 나는로드하기 된 외부 HTML 내에서 내 JQuery와 스크립트를 포함하고, 일에 보였다. 내가 주 문서의 상단에 장착하는 JS는 그러나 새로운 콘텐츠에 대한 작업을하지 왜 그랬는지 이해가 안 ...


  11. 11.나는 창로드에) ($ (문서)을 변경하여이 문제를 해결할 수 .ready했다 ().

    나는 창로드에) ($ (문서)을 변경하여이 문제를 해결할 수 .ready했다 ().


  12. 12.@efreed 대답에 시침 ...

    @efreed 대답에 시침 ...

    내가 .load를 사용했다 ( '의 mypage.html #theSelectorIwanted') 선택하여 페이지의 내용을 호출하지만 수단은 그 내부 인라인 스크립트를 실행하지 않습니다.

    대신에, 나는 그것이 자신의 파일의 그 '#의 theSelectorIwanted'became 그래서 내 마크 업을 변경할 수 있었고, 난 사용

    load('theSelectorIwanted.html`, function() {}); 
    

    그것은 잘 인라인 스크립트를 실행했습니다.

    모든 사람이 해당 옵션을 가지고 있지만 이것은 내가 원하는 위치를 얻을 수있는 빠른 해결했다!

  13. from https://stackoverflow.com/questions/889967/jquery-load-call-doesnt-execute-javascript-in-loaded-html-file by cc-by-sa and MIT license