1

これは私が得るエラーです:

ここに画像の説明を入力してください

縮小されていないjQuery1.7.2javascriptファイルの問題の行:

 error: function( msg ) {
     throw new Error( msg );
 }, 

このことから、エラーがどこにあるかを把握する方法はありません(または少なくとも私にはわかりません)。jQueryプラグイン( http://shama.github.com/jmpress.js/#/docs)からこの行のコメントを解除すると、エラーが停止することがわかりました。

$("#my_div").jmpress();

しかし、それ以上の粒度を得ることができません。このJSON解析が行われている場所を見つけるのに役立つデバッグのヒントはありますか?

===編集: ===

JSON.parseを使用して、文字列として解析しようとしたこの特定の文字列を追跡することができました。

_FB_f3757ad5f032398xd_action=proxy_ready&data

しかし、それが私のコードのどこにあるのかを特定することはできませんが、「FB」プレフィックスから、この文字列はFacebook JS SDK(私が使用している)の一部であるように見えます

4

1 に答える 1

2

jmpress のソース コードを見ると、クロスオリジン iframe メッセージングに由来しています。基本的にjmpressはこれを行います:

window.addEventListener("message", function(event) {
    // We do not test orgin, because we want to accept messages
    // from all orgins
    try {
        var json = JSON.parse(event.data);
        switch(json.type) {
        case "select":
            // TODO SECURITY filter targetId
            $.each(eventData.settings.presentationMode.transferredValues, function(idx, name) {
                eventData.current[name] = json[name];
            });
            $(eventData.jmpress).jmpress("select", {step: "#"+json.targetId, substep: json.substep}, json.reason);
            break;
        case "listen":
            current.selectMessageListeners.push(event.source);
            break;
        case "ok":
            clearTimeout(current.presentationPopupTimeout);
            break;
        case "read":
            try {
                event.source.postMessage(JSON.stringify({type: "url", url: window.location.href, notesUrl: eventData.settings.presentationMode.notesUrl}), "*");
            } catch(e) {
                $.error("Cannot post message to source: " + e);
            }
            break;
        default:
            throw "Unknown message type: " + json.type;
        }
    } catch(e) {
        $.error("Recieved message is malformed: " + e);
    }
});

そのため、メイン ウィンドウに投稿するすべての iframe は、このイベント ハンドラーを通過し、無効な JSON を渡すとエラーをログに記録します。メイン ウィンドウにメッセージを投稿する Facebook の iframe が Web サイトにあるようです。それらをすべて削除して、エラーが消えるかどうかを確認してください。

于 2012-08-09T21:24:10.657 に答える