jquery间歇性地失败了对象查找

时间:2014-02-26 18:02:34

标签: jquery google-chrome sharepoint yahoo-finance

我正在处理一个最终在sharepoint页面中显示为内容的页面。 这是从雅虎检索股票报价。

页面本身可以100%的时间运行 托管我的页面的Sharepoint(SP)页面在IE中工作~90%的时间 托管我的页面的Sharepoint(SP)页面在FF中工作的时间约为80% 托管我的页面的Sharepoint(SP)页面在Chrome中的工作时间约为5%

我想专注于Chrome方案。

失败来自回调函数。

我得到了

Uncaught TypeError: Property '$' of object [object Object] is not a function 

违规行如下

$("#" + quote.symbol + " .tkrPrice").text('$' + quote.AskRealtime);

我已阅读有关Ready()和noConflict()的帖子。我试过用jQuery替换$,这似乎并没有影响任何东西。

以下是需要考虑的一些事项

  1. 在api调用yahoo之前成功调用了jQuery。加载该文件不是问题。
  2. 网络有时很有用,但页面本身就可以工作。因此,我不愿意将网络归咎于计时问题。
  3. 被选中的对象在通话时绝对存在。它不是写html然后引用它的计时类型问题。
  4. 错误来自yahoo api的回调。
  5. SP页面本身有很多。我对这究竟是什么没有太多的了解,但我将其描述为一个复杂的页面。
  6. 我很失败了。逻辑是正确的,但显然它与时间有关。关于Chrome的一些事情强调了这个问题。

    我正在寻找一些调试想法......

    tyia

    格雷格

1 个答案:

答案 0 :(得分:0)

有人建议我测试以确保在回调时仍然加载jQuery。

这个建议让我感到震惊,但由于我没有想法,我很感激有些尝试。

使用此测试确实会在api调用后卸载jQuery。

 function jqIsLoaded(){
            if (typeof jQuery == "undefined") return 0;
            return 1;
        }

我的解决方案是测试jQuery并在未加载时动态加载它。 同样,这仅在SP页面中是必需的。我必须假设页面模板正在发生这种情况。