2010-07-21 3 views
1

신사 숙녀 여러분, 새로 고침 CRM 페이지 jQuery를/자바 스크립트 오류를 ​​

내가 3 개 JS 파일 (1 배 jQuery를 2 배 정의) 모든 CRMInstall/ISV/폴더에 저장을 참조하는 CRM 페이지가되도록합니다.

OnLoad 메서드에서 각 개체를로드하고 UI를 확장/사용자 지정하는 데 사용하고 있습니다.

그러나 jQuery에 익숙하지 않은 것은 분명히 보여줍니다!

//jquery 
var url = "/isv/jquery-1.4.2.js"; 
var scriptElement = document.createElement("<script src='" + url + "' language='javascript'>"); 
document.getElementsByTagName("head")[0].insertAdjacentElement("beforeEnd", scriptElement); 


$(document).ready(function() 
{ 
$.getScript("/isv/common.js", function() 
{ 
    $.getScript("/isv/account.js", function() 
    { 
    $(document).ready(function() 
    { 
    SetUpAccountForm();//call to account.js 
    }); 
    }); 
}); 
}); 

그리고 이것은 다음 (IE8을 사용하여) 원인 :

는, OnLoad 코드는 다음과 같습니다
첫 페이지로드 (임시 인터넷 파일 폴더에있는 파일 없음)

  • 오류

두 번째 페이지로드 (모든 파일 지금()() 임시 인터넷 파일 폴더) 미세

  • 페이지 /로드 기능에

는 F5 (새로 고침)

  • 오류 발생 $ 타격 (문서) .ready (함수() {히트 })

나는 어디로 가고 있습니까? jQuery 스크립트에 대한 참조를 두 번 추가했기 때문입니까? 오류가 읽고 두 경우 모두

:

There was an error with this field's customized event.
Field:window
Event:onload
Error:Object expected

답변

2

나는 JQuery와는 완전히로드되지 않은, 문제가 시간에 당신이 $ (문서) .ready 기능을 처음 쳤다고 생각 ... 스크립트 태그를 삽입해도 스크립트를 즉시 사용할 수 있다는 의미는 아닙니다 ...

두 번째로로드하면 js 파일이 이미 캐시에 있으므로로드 속도가 빨라지지만 F5를 누르면 서버에서 모든 것을 다시로드하고 첫 번째 경우로 되돌아갑니다. 기본 내부 코드 (다른 웹 리소스)를 포장하는 webresource로

var url = "http://code.jquery.com/jquery-1.4.2.min.js"; 

var head = document.getElementsByTagName("head")[0];   
var scriptNode = document.createElement('script'); 
scriptNode.type = 'text/javascript'; 
scriptNode.src = url; 
scriptNode.onload = jQueryLoaded; 
head.appendChild(scriptNode); 


function jQueryLoaded() 
{ 
    $(document).ready(function() { 
     $("#some").text("Jquery loaded!!") 
    }); 
} 
+0

내일 다시 사무실에있을 때 이것을 시도하겠습니다.하지만 예제 코드도 감사합니다. – glosrob

+0

완벽하게 일했습니다. 감사합니다. – glosrob

0

추가 JQuery와 :

당신은 당신이 삽입있는 스크립트 노드의 onload 이벤트에 함수를 연결하여이 문제를 해결할 수 javascript 함수를 호출하고 해당 함수를 호출하는 Form OnLoad에 대한 이벤트를 추가합니다. 커스텀 코드 앞에 jquerywebresource를 두는 것을 잊지 마십시오. 예 : here을 참조하십시오.