2010-07-14 3 views
0

이것은 알려진 문제이며 여기에 몇 번이나 물어 보았습니다. 그렇지만 나는 jQTouch에 특정한 것을 보지 않았습니다. 그래서 나는 그것을 시도 할 것이라고 생각했습니다.동적으로로드 된 <script> 태그가 WebKit 브라우저에서 사용되지 않습니다

jQT는 링크를 클릭 할 때 페이지를 동적으로로드합니다. 이 페이지에서 나는

<script> 
$.include('javascriptfile.js', function() {alert('do something with results of this file to an already existing div element');}; 
</script> 

은 $ .include 내가 모방이 몇 가지 더 영리와는 $ .load가 추가 것을 발견 jQuery 플러그인입니다 같은 것을 포함 할 것이다. FF로 작동하지만 Chrome이나 Safari에서는 작동하지 않습니다.

경고가 표시되지 않습니다. FireBug는 심지어로드되는 자바 스크립트를 보여주지 않습니다. $ .include 앞에 경고를두면 여전히 아무 것도 볼 수 없습니다.

나는 머리 태그에 포함 된이 코드를 실행하는 onclick/ontap 이벤트를 시도했지만 행운이 없습니다.

편집 : jQT의 r148 버전을 사용하고 있습니다. 이 버전으로 이전하기 전에이 작업이 진행 중이었습니다.

정적 방법 :

<script type="text/javascript"> 

function staticLoadScript(url){ 
    document.write('<script src="', url, '" type="text/JavaScript"><\/script>'); 
} 

staticLoadScript("javascriptfile.js"); 
modifyDivFn(processFnInFile()); 

</script> 

동적 방법 :

<script type="text/javascript"> 

function dhtmlLoadScript(url){ 
    var e = document.createElement("script"); 
    e.src = url; 
    e.type="text/javascript"; 
    document.getElementsByTagName("head")[0].appendChild(e); 
} 

onload = function(){ 
    dhtmlLoadScript("javascriptfile.js"); 
    modifyDivFn(processFnInFile()); 
} 

</script> 

(가) 포함 후에 당신이 호출 할 수 있습니다

+0

플러그인은 어디에 있습니까? 동적으로로드 된 스크립트는 올바르게로드 된 경우 확실히 작동합니다. – Pointy

+0

포함하는 데 사용되는 플러그인은 jquery.includeMany-1.2.2.js입니다.이 플러그인은 http://www.arashkarimzadeh.com/index.php/jquery/17-includemany-jquery-include-many.html에 있습니다. 나는 최근 편집에서 r148을 사용하고 있으며 r108에서이 점을 기억하고 있습니다. –

답변

0

잘 Geries, 나는 당신의 도움을 주셔서 감사하지만, 궁극적으로 대답은 내가 JQTouch을 사용하던 방법에 대한 과감한 재검토를 요구했다. 해결책은 모든 것을 onclick 이벤트로 옮기고 모든 hrefs를 #에 연결시키는 것이 었습니다. 이것은 당신이 Geries에 대해 말한 것일 수 있습니다.

onclick 함수에서 jquery를 통해 내 자신의 GET을 통해 페이지를로드하고 프리로드하는 로직을 수행 한 다음 공용 객체 jQT.goTo (div, transition)를 사용합니다. 이것은 WebKit 버그 또는 내가 무엇을 실행하고 지금은 FireFox, 크롬, 사파리, 아이폰, 그리고 많은에 owrks 주위에 얻을 것 같다.

JQT로 몇 가지 애니메이션 문제가 생겼지 만, 나는 이것이 JQTouch의 Stark와 Gang이 작업하기를 희망하는 알려진 문제라고 생각합니다.

0

는이 두 가지 방법 중 하나를 사용하여 자바 스크립트 파일을 추가하려고 했나 함수는 원하는 처리 (즉, processFnInFile())를 수행하여 결과가 modifyDivFn으로 전달되고 원하는 div를 수정합니다.이 기능은 한 기능에서만 가능합니다. 아이디어를 포기하십시오.


출처 : Dynamically Loading Javascript Files

+0

예, HEAD에 추가 할 머리에 정적 함수가 있습니다. 문제는 정적 함수를 절대로 호출 할 수 없다는 것입니다. 내가 아는 것에서 onload 이벤트를 사용하는 것은 옵션이 아닙니다.jQT가 작동하는 방식은 링크를 클릭하는 것입니다. 제 경우에는 jQT가 사용하는 내부 GET 메커니즘을 통해 검색된 html 파일을 참조하고, 그 파일의 내용이 동적으로 생성 된 div에 배치됩니다. 그래서이 동적으로 생성 된 내용, 그 HTML 파일, 정적 함수를 호출하는 스크립트 태그가 있지만이 스크립트 태그의 코드는 실행되지 않습니다 –

+0

제가 제대로 이해했는지 보도록하겠습니다. 링크를 클릭하십시오. 하나는 파일의 내용을 가져 와서 div (동적으로 생성)에 넣습니다. 따라서 해당 div에 내용을 넣으면 스크립트가 실행되기를 원하십니까? – Geries

+0

예, 맞습니다. –

관련 문제