ページごとに複数の「保存」ボタンがあるサイトで作業しています。ユーザーが保存アクションを完了したことを自分のシステムに登録できるように、それぞれにコールバックが必要です。プログラムでこれを行う方法を理解したと思いました...しかし、作成したウィジェットごとに、SDK を介して DOM に追加しようとすると、「null のプロパティ 'style' を読み取れません」というエラーが表示されます。
これが私のJavascriptです
<script type='text/javascript'>
(function () {
window.___fourSq = {
"uid": "31904528",
"secure": true,
"explicit": false,
"onReady": function () {
$('.fourSquareVenueId').each(function () {
var vid = $(this).val();
var widget = new fourSq.widget.SaveTo({
"vid": vid
});
var container = $(this).parent().find('.placeholder');
widget.replace(container);
});
}
};
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'https://platform-s.foursquare.com/js/widgets.js';
s.async = true;
var ph = document.getElementsByTagName('script')[0];
ph.parentNode.insertBefore(s, ph);
})();
基本的に、SDK が読み込まれると、会場 ID を含むすべての非表示の入力を調べて見つけ、そこで「保存」ウィジェットを作成して、プレースホルダーとして持っている空のアンカー タグを置き換えようとします。
Chrome コンソールのエラーのスクリーンショットへのリンクは次のとおりです。
http://gyazo.com/f011c25bb88181251e2820e748b41093.png
どんな助けでも大歓迎です。ありがとう。
編集: これが私が使用しているフォースクエアのドキュメントです: https://developer.foursquare.com/overview/widgets#programmatic-instantiation