JQuery - getScript открывается в новой вкладке - PullRequest
2 голосов
/ 27 февраля 2011

У меня странная проблема "imho" с функцией getScript jquery.

$.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 ...

Как я могу исправить эту ошибку?

Заранее спасибо Питер

Ответы [ 4 ]

2 голосов
/ 03 марта 2011

Определение значения 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"}]}
0 голосов
/ 07 марта 2011
    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');
        }
    });

Обычно я делаю это для загрузки файлов JavaScript, я запускаю приведенный выше код в своем браузере, и он работает нормально.

Также я создал демо http://jsfiddle.net/jDwYL/

0 голосов
/ 01 марта 2011

Это проблема с Google API Loader.Я сам столкнулся с этой проблемой при использовании отложенной загрузки их API JavaScript.Я не смог найти решение проблемы и в конечном итоге просто использовал обычный тег <script>.

Я представляю, что их код javascript выполняет это перенаправление (не уверен, намеренно это или нет).Вы всегда можете копаться в их коде, чтобы узнать, где происходит перенаправление.(звучит как много потерянного времени)

Кто-нибудь еще имел эту проблему, но нашел способ обойти ее?

0 голосов
/ 27 февраля 2011

эта строка означает, что вы уже включили файл !!
почему вам нужно загрузить его в 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>
...