2

我正在尝试通过 window 对象访问一个函数。在我的代码中,我的函数被一个字符串引用,所以我必须使用窗口对象(或 eval)来获取它。我用纯 JavaScript 测试了我的代码,它运行良好。但是当使用 jQuery 时它会失败。这是我的测试代码:

function speak(words, callback){
  for(var i=0;i<10000;i++){
      console.log(words);
  }
  if(callback)
    callback.call();
}

console.log(window['speak']);​

这是一个可以工作的纯 JavaScript 版本的链接。
这是一个无法使用的 jQuery 版本的链接。

我需要做什么才能在 jQuery 中完成这项工作?

4

1 回答 1

5

您没有声明speak为 的成员window,而 JSFiddle 实际上将其包装在document.ready回调中。如果您希望它在object上可用,则需要将其显式设置window.speak = speak为代码的一部分window

或者,您需要将小提琴配置为在没有包装器的情况下执行,而不是onDomReady

于 2012-09-17T18:03:37.437 回答