2


我对 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 ...

我该如何修复这个错误?

在此先感谢
彼得

4

4 回答 4

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"}]}
于 2011-03-03T18:22:34.407 回答
0

这是 Google API 加载器的问题。在使用延迟加载他们的 javascript API 时,我自己也遇到过这个问题。我无法找到问题的解决方案,最终只使用了传统<script>标签。

我想他们的 javascript 代码正在运行这个重定向(不确定它是否是故意的)。您总是可以挖掘他们的代码以找出重定向发生的位置。(听起来很浪费时间)

有没有其他人遇到过这个问题,但找到了解决方法?

于 2011-03-01T18:03:01.003 回答
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');
        }
    });

我通常这样做是为了加载 javascript 文件,我在浏览器上运行上面的代码,它运行良好。

我还创建了一个演示http://jsfiddle.net/jDwYL/

于 2011-03-07T08:20:27.150 回答
-2

这一行意味着你已经包含了文件!
为什么你需要在 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>
于 2011-02-27T09:24:05.500 回答