2012-04-26 4 views
1

나는이 index.html과 login.html을 가지고 있으며 href를 사용하여 색인에서 로그인으로 연결한다. 각 index.html과 login.html에서 자바 스크립트를 가져옵니다. 그러나로드중인 index.html에서 나온 것만있는 것으로 보입니다. 그래서 login.html에 js를 index.html에 넣으면 잘 동작합니다. 하지만, 우리는 내가 (index.html을하지 않을 login.html 또 다른 JS가), 그것은jQuery Mobile + PhoneGap href 및 javascript 소스

TIA

작동 나던 별도로 배치
+0

jQuery 모바일에서는 각 페이지마다 하나의 파일을 만들지 않습니다. 또는 하나의 index.html 파일과 모든 페이지가 있어야합니다. http://jquerymobile.com/demos/1.1.0/docs/about/getting-started.html – deadlock

+1

사실 멀티 페이지 전략을 사용하지 않는 것이 좋습니다. 문서는 이렇게 말합니다 : http://jquerymobile.com/demos/1.1.0/docs/pages/page-anatomy.html. 다중 HTML 페이지 앱은 요소에 rel = "external"또는 $ .mobile.ajaxEnabled = false와 함께 ajax를 비활성화해야합니다. – Libby

답변

4

JQM (jQuery를 모바일은) 그것을 달성하기 위해 아약스를 사용하는 페이지를로드 할 때 이. 이 경우 <head> 섹션의 모든 코드가 무시됩니다. JQM은 data-role = "page"부분을 찾아 index.html과 동일한 dom에 삽입합니다. 따라서 기본적으로 index.html 페이지에서 j를 추가 할 때 올바른 방법을 사용하고 있습니다.

특정 문서가이 예를 사용하기 위해 작동하도록 JS 코드를 구획하고 싶은 경우

$(document).on('pageinit', '#page1', function(){ 
    // code for #page1 
}); 
$(document).on('pageinit', '#page2', function(){ 
    // code for #page2 
}); 
$(document).on('pageinit', '[data-role=page]', function(){ 
    // this code will execute for every page that is data-role="page" 
}); 

그래서 가서 하나 개의 파일에 모든 코드를 넣어. 위와 같은 적절한 페이지로 코드를 분할하고 index.html 파일에 코드를 포함하십시오.

jQuery 버전 1.6.4 (1.0.1 권장)와 함께 JQM 버전 1.0.1을 사용하는 경우 .on() 대신 .delegate()를 사용하십시오. 즉

$(document).delegate('#page1', 'pageinit', function(){ // notice that pageinit and #page1 are switched around for delegate 
    // code for #page1 
}); // interesting to note that if you use delegate in jQuery 1.7.x it actually just calls the .on() method. 

웹 응용 프로그램 대신에 당신이 그 하나 개의 파일에 자바 스크립트를 넣어 스마트하고 것 폰갭 응용 프로그램을 제작 한 경우에는 모든 페이지에서 해당. 이 방법은 누군가가 링크를 따르거나 귀하의 페이지를 북마크에 올리면 필요한 올바른 자바 스크립트 파일을 받게됩니다.

어쨌든 나는 당신을 돕기를 바랍니다. 행운을 빕니다!

0

window.location.href을 수행하는 경우 새 HTML이로드됩니다 (이 경우 login.html).이 방법을 사용하는 경우 모든 스크립트를 다시로드해야하므로 모든 스크립트에이 스크립트를 추가해야합니다 .html 페이지.

<script src="cordova-1.6.0.js" type="text/javascript"></script> 
<script type="text/javascript" src="jquery/jquery-1.7.1.min.js"></script> 
<link rel="stylesheet" href="jquerymobile/jquery.mobile-1.1.0.min.css" /> 
<script type="text/javascript" src="jquerymobile/jquery.mobile-1.1.0.min.js"></script> 

그러나 @deadlock에서 권장하는 방법을 사용하면 스크립트를 한 번로드하면됩니다. 후자의 방법이 최선의 방법입니다.

0

페이지가 서로 연결되는 방식과 앱에 설정 한 글로벌 구성 설정이있는 경우 코드를 게시하십시오. jQM과 마찬가지로 페이지 아치를 지원하는 여러 가지 방법과 전략이 있습니다.

또한 데스크톱 브라우저 도구를 사용하여 "리소스"를보고 리소스가로드되는시기와시기를 확인할 수도 있습니다.

관련 문제