1

私は JavaScript の初心者で、友人が彼の Web サイトを維持するのを手伝っています。彼の index.html ページが何をしているのか、私が理解できない唯一のことは、この JavaScript コードを中心に展開していることです。以下、それについていくつか質問があります。

<script type="text/javascript">
function reRenderPin() {
    for (var n in window) {
        if ( n.indexOf('PIN_') == 0 && $("a[data-pin-do]").length > 0)  {
            $("a[data-pin-do]").attr("id", "pinbutton");
            var element = document.getElementById('pinbutton');
            window[n].f.render.buttonBookmark( element );
        }
    }
}

$(document).ready(function(){    
    reRenderPin();
});

$(document).bind("projectLoadComplete", function(e, pid) {
    reRenderPin();
});

</script>

<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>

これについて検索しましたが、明確な回答はありませんでした。

これは Pinterest と関係があることを知っており、reRenderPin() 関数が「ドキュメントの準備完了」時間と「projectLoadComplete」時間に呼び出されていることを理解しています。

私の質問は次のとおりです。

  1. reRenderPin() 関数は何をしていますか?

  2. projectLoadComplete イベントはいつ発生しますか? 私はこれについて検索を行いましたが、それに関する情報はほとんどなく、そこに何があるかはわかりませんでした.

  3. 関数が「$」関数を使用していることに気付きました。これが JQuery 関数であることは知っていますが、JQuery 関数を使用する場合は、html にコード ライブラリへのリンクが必要であると理解しています。ページ上の唯一の .js ライブラリは、ピンタレスト アセットを指しているものです。コードを参照してください。この「$」関数はライブラリなしでどのように機能しますか?

どんな助けでも大歓迎ですか?

よろしく、
アンジェロ

4

1 に答える 1

0

スクリプトはピンタレストのピンボタンスクリプトのようです。

使用している CMS またはテンプレートによって挿入される可能性があります

1) スクリプトは、必要に応じて jQuery を挿入する可能性があります

2) コードは、PIN_ で始まるウィンドウ スコープ内の変数を探し、data-pin-do と一致する関数 window["pin_something"].f とのリンクを探します。

3) projectLoadComplete は別のスクリプトによってトリガーされ、トリガーされると reRender が呼び出されます - これは cargo と呼ばれるプラットフォームに関連しているようです - http://support.cargocollective.com/customer/portal/articles/708669-adding-a-pinterest -ウィジェット

于 2013-10-09T12:51:15.983 に答える