2011-02-27 3 views
2


jquery getScript 함수에 "이상한"문제가 있습니다.JQuery - 새 탭에서 getScript가 열립니다.

$.getScript('jquery_ui.js', function(){}); 
// this code works fine 

<script type="text/javascript" src="http://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22feeds%22%2C%22version%22%3A%221%22%7D%5D%7D"></script> 
// works fine,too 

$.getScript('http://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22feeds%22%2C%22version%22%3A%221%22%7D%5D%7D', function(){}); 
// This code redirect my page. 
// But why, oO? This is the same like <script type="text/javascript" src="http://www.google.com/j ... 

이 버그는 어떻게 해결할 수 있습니까? 사전에

감사
피터

+0

내 브라우저 (firefox)가로드 중입니까, 홀 시간입니까? – Peter

+1

죄송합니다. 맞습니다. Firefox (Windows 및 Linux), Opera (Linux 및 Windows) 및 Safari (Windows)에서도 저 (http://jsbin.com/aqoda3)가 이상하게 작동합니다. Chrome (Linux 및 Windows) 및 IE6/7/8에서 올바르게 작동합니다. V. strange. –

답변

2

로드하는 각 모듈에 대해 callback 값을 정의하면 문제를 해결할 수 있습니다. (쿼리 문자열에서 autoload의 값이 다음은로드하는 모듈의 이름과 당신의 콜백의 이름을 포함합니다.)

function maps(){ 
    console.log("maps loaded"); 
} 
function feeds(){ 
    console.log("feeds loaded"); 
} 
$.getScript("https://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22maps%22%2C%22version%22%3A%222%22%2C%22callback%22%3A%22maps%22%7D%2C%7B%22name%22%3A%22feeds%22%2C%22version%22%3A%221%22%2C%22callback%22%3A%22feeds%22%7D%5D%7D"); 
// https://www.google.com/jsapi?autoload={"modules":[{"name":"maps","version":"2","callback":"maps"},{"name":"feeds","version":"1","callback":"feeds"}]} 
-2

이 라인은 u는 이미 파일을 포함 것을 의미합니다!
왜 당신이 구글 API 로더에 문제가있다 JQuery와

<script type="text/javascript" src="http://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22feeds%22%2C%22version%22%3A%221%22%7D%5D%7D"></script> 
+0

내 페이지에 시간 초과가 있습니다. CSS/HTML/jquery.js 코드를 먼저로드하고 1 초 후에 내 js 파일을 모두 가져옵니다 ... jquery_ui, js 파일 (Google 등) 등이 페이지를 빠르게 만듭니다. – Peter

+0

죄송합니다. 귀하의 코드를 잘못 이해했습니다. 한 번 미안하다고 생각한 모든 것을 사용했다고 생각합니다. – ahmedsafan86

0

에로드해야합니다. 나는 자바 스크립트 API의 지연된 로딩을 사용할 때이 문제를 직접 경험했다. 문제에 대한 해결책을 찾지 못했고 궁극적으로 일반 <script> 태그 만 사용했습니다.

자바 스크립트 코드가이 리디렉션을 실행하고 있다고 상상합니다 (의도적인지 여부는 알 수 없음). 리다이렉트가 어디에서 일어나고 있는지 알기 위해 항상 코드를 살펴볼 수 있습니다. (많은 시간 낭비라고 생각합니다)

이 문제가있는 사람이 있습니까?

0
jQuery.ajax({ 
     url: 'http://www.google.com/jsapi?autoload={%22modules%22%3A[{%22name%22%3A%22feeds%22%2C%22version%22%3A%221%22}]}', 
     dataType: 'script', 
     success: function() { 
      alert('succeess'); 
     } 
    }); 

내가 보통이 자바 스크립트 파일을로드 할, 내가 실행 내 브라우저에서 위의 코드를 잘 작동했습니다.

또한 데모를 만들었습니다 http://jsfiddle.net/jDwYL/

관련 문제