7

ScriptTagインストール直後にAPIを介してを追加するShopifyアプリがあります。スクリプトはjQueryとShopifyjQueryAJAXライブラリに依存しています。可能であれば、販売者に複数のテーマファイルの編集を強制することは避けたいと思います。

私の知る限り:

  • これらの依存関係は、すべてのテーマまたは正しい順序で表示されることが保証されているわけではありません。
  • APIからShopifyCDNまたはテーマスクリプトを直接参照する方法はありません(リモートスクリプト専用であるため)。
  • scripts.liquidAPIが追加された*.liquidアセットは設定オブジェクトにしかアクセスできないため、すべてのスクリプトタグをアセットに統合することはできません。

私はしぶしぶスニペットを個別に提供し、マーチャントが前にそれを貼り付けるように指示することに傾倒してい</head>ます。

ScriptTag私が欠けているものを使用するためのShopifyが意図したパターンはありますか?

4

2 に答える 2

8

テーマで利用できるものに実際に依存することはできません。ストアの所有者は好きなようにカスタマイズでき、あなたはそれをほとんど制御できません。オプションは次のとおりです。

  1. 顧客にjQueryを持っているか、テーマに追加するように要求します。
  2. 他のライブラリに依存せずに、純粋なJavaScriptでコードを記述します。
  3. 必要なライブラリを独自のスクリプトに埋め込みます。すでにライブラリを持っている場合に競合しないように、必ずクロージャでラップしてください。

自分で#3を実行することをお勧めしますが、必要最小限の機能を備えた軽量のライブラリを選択することをお勧めします(つまり、トラバーサルjQuerysセレクターエンジンが本当に必要ない場合は、それなしで実行できる巨大なコードです)。あなたが周りを検索するならば、そこにそれらがたくさんあります。

于 2012-08-24T11:56:05.617 に答える
4

ScriptTagで使用するための開始点として、このサンプルファイルを作成しました。http://gist.github.com/carolineschnapp/5397337 jQueryが定義されていないか、古すぎる場合にjQueryをロードする方法を示します。ショップのテーマを壊すことなく、あなたのニーズ。jQuery.noConflictを使用する必要があります。副次的な損傷なしに簡単に行うことができます。

私はまた、ひどい読み物である次のことを書きました、おそらく私のドキュメンテーションのキャリアで書かれた最悪のものですが、それは知恵に満ちています:http: //docs.shopify.com/api/tutorials/using-javascript-responsibly私はそれを願っていますScripTagの使用に固執するように説得します。

Shopify jQuery AJAXライブラリをロードする限り、私は完全にロードしません。jQueryを使用して独自のコードを使用し、必要なことは何でも実行します。私はそれを言うのは嫌ですが、あなた自身のコードを使うのは簡単すぎます、それは本当にそうです。ヘルパーファイルはまったく必要ありません。不要な肥大化であり、テーマでも使用されている可能性があるため、ヘルパーファイルを使用すると競合が発生する可能性があります。テーマがそれを使用してカートをajax化するか、Ajaxを使用して製品をロードする場合、ヘルパーファイル内で定義されているいくつかのコールバック関数を再定義しています。ファイルを再度ロードするだけで、これらのコールバックをすべて解除できます。人々はカートにアイテムを追加し、突然アラートがページに表示されます。または、Ajaxを介してページにロードされた製品の代わりに、テーマが突然アラートを表示します。

于 2013-04-16T22:56:12.173 に答える