1

2 つの jQuery 呼び出しで問題が発生しています。1 つ目は、HTML を取得してページに表示する「ロード」です (返されるコードには Javascript と CSS が含まれています)。2 つ目は、JSON を返す「getJSON」です。返される JSON は有効です。

Windows または Mac 用の Chrome を除いて、私が試した他のすべてのブラウザですべて正常に動作します。問題のページは次のとおりです。

http://urbanistguide.com/category/Contemporary.aspx

IE/FF でレストラン名をクリックすると、その項目が展開されて詳細情報が表示され、右側に地図が表示されます。ただし、これを Chrome で行うと、JSON データが画面に出力されるだけです。

最初の問題点は、"load" 関数がここで呼び出されたときです。

    var fulllisting = top.find(".listingfull");
    fulllisting.load(href2, function() {
       fulllisting.append("<div style=\"width:99%;margin-top:10px;text-align:right;\"><a href=\"#\" class=\"" + obj.attr("id") + "\">X</a>");
       itemId = fulllisting.find("a.listinglink").attr("id");

...

上記のコードでは、コールバック関数が呼び出されていないようです。

2 番目の問題点は、「getJSON」関数が呼び出されるときです。

$.getJSON(href, function(data) {
    if (data.error.length > 0) {
        //display error message
    }
    else {
        ...
    }

この場合、コールバックを実行するのではなく、リンクをたどっているように見えます...そして、はい、「return false;」を実行しています。このすべての最後に、リンクが実行されないようにします。

ソースコードを表示したい場合、残りのコードはすべてそのページにインラインで表示されます。

何か案は??

ありがとう

4

2 に答える 2

0

loadBusiness(obj, doScrollTo)として再宣言top = obj.parent().parent().parent()var top = obj.parent().parent().parent()ます。

現在の方法では、ウィンドウのようにグローバル変数topを参照しています。これは特別な変数であるため、Chrome では再定義できません。実行var fulllisting = top.find(".listingfull")すると、基本的に実行されます( https://developer.mozilla.org/en/DOM/window.findvar fulllisting = window.find(".listingfull")を確認してください)。このメソッドは false を返し、ここで例外がスローされます:fulllisting.load(...)false.load(...)

于 2010-08-08T02:12:27.263 に答える
0

Chrome は厳密すぎて、他のブラウザーとは異なり、不正な形式の JSON オブジェクトを認識しません。

i.e. {"list":["abc","def",]}

に変更する必要があります

{"list":["abc","def"]}

また

{"list":["abc","def",""]}

もちろん、最後のものは省略します。

于 2010-08-08T01:24:00.800 に答える