/*! * stande setting js * 項目のマッピングおよびアカウントキーの設定 */ const initStande = function () { //============================================================================ // ・nameにはHubSpotプロパティの内部名を設定してください。 // ・フォームに配置していない項目は取得しないため、配置するようにしてください。 // ※std_から始まるプロパティは、アプリインストール時に自動で作成します。 //============================================================================ const fields = [ { // 法人名 name: 'company', id: 'corporate_name', autocomplete: 'new-password' }, { // 代表電話番号 name: 'std_phone_number', id: 'phone_number' }, { // 郵便番号 name: 'zip', id: 'zip_code' }, { // 都道府県 name: 'state', id: 'prefecture' }, { // 市区町村番地 name: 'city_address', id: 'city_address' }, { // データ種別 name: 'std_data_type', id: 'data_type' }, { // 法人番号 name: 'std_corporate_number', id: 'corporate_number' }, { // 適格請求書発行事業者登録番号 name: 'std_registrated_number', id: 'registrated_number' }, { // 学校コード name: 'std_school_code', id: 'school_code' }, { // 業種コード name: 'std_industry_code', id: 'industry_code' }, { // 業種区分 name: 'std_industry_kbn', id: 'industry_kbn' }, { // 上場コード name: 'std_listed_code', id: 'listed_code' }, { // 上場区分 name: 'std_listed_kbn', id: 'listed_kbn' }, { // 資本コード name: 'std_capital_code', id: 'capital_code' }, { // 資本区分 name: 'std_capital_kbn', id: 'capital_kbn' }, { // 資本金 name: 'std_capital_val', id: 'capital_val' }, { // 売上コード name: 'std_revenue_code', id: 'revenue_code' }, { // 売上区分 name: 'std_revenue_kbn', id: 'revenue_kbn' }, { // 売上金 name: 'std_revenue_val', id: 'revenue_val' }, { // 従業員コード name: 'std_employee_code', id: 'employee_code' }, { // 従業員区分 name: 'std_employee_kbn', id: 'employee_kbn' }, { // 従業員数 name: 'std_employee_val', id: 'employee_val' }, { // 本社/拠点区分 name: 'std_headquarter_kbn', id: 'headquarter_kbn' }, { // 都道府県コード name: 'std_prefecture_code', id: 'prefecture_code' }, { // 市区町村コード name: 'std_city_code', id: 'city_code' }, { // 市区町村 name: 'city', id: 'city' }, { // 番地 name: 'address', id: 'address' }, { // ホームページトップURL name: 'std_hp_url', id: 'hp_url' }, { // FAX番号 name: 'std_fax_number', id: 'fax_number' }, { // 登記情報フラグ name: 'std_nta', id: 'nta' }, { // 登記郵便番号 name: 'std_nta_zip_code', id: 'nta_zip_code' }, { // 登記都道府県コード name: 'std_nta_prefecture_code', id: 'nta_prefecture_code' }, { // 登記都道府県 name: 'std_nta_prefecture', id: 'nta_prefecture' }, { // 登記市区町村コード name: 'std_nta_city_code', id: 'nta_city_code' }, { // 登記市区町村 name: 'std_nta_city', id: 'nta_city' }, { // 登記番地 name: 'std_nta_address', id: 'nta_address' }, { // 登記市区町村番地 name: 'std_nta_city_address', id: 'nta_city_address' }, ]; //============================================================================ // 実際に存在するフィールドのIDを格納するための配列 let existingFields = []; fields.forEach(field => { let element = document.getElementsByName(field.name)[0]; if (element) { // 要素が存在すれば、IDを割り当て、存在するフィールドのリストに追加する element.setAttribute('id', field.id); existingFields.push(field.id); // autocomplete属性が定義されている場合は、それも設定する if (field.autocomplete) { element.setAttribute('autocomplete', field.autocomplete); } } }); // formIDMappingを作成する // HTML内で実際に存在するフィールドのみを含める const formIDMapping = existingFields.reduce((acc, id) => { acc[id] = id; return acc; }, {}); // set an argument const arg = new StandeArgument() // This account ID is mandatory. arg.accountId = '20560818' // This mapping data is mandatory. arg.formIdMapping = formIDMapping // enableOnSelect is optional: // true by default will be applied if not specified. arg.enableOnSelect = true // run const stande = new Stande(arg) } let isStandeInit = false; window.addEventListener('message', event => { if (event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormReady') { isStandeInit ? console.log("Stande started already.") : initStande(); isStandeInit = true; } });