为什么会得到错误Y在Squarespace中未定义错误

问题描述 投票:0回答:1

我正在使用Javascript代码将其注入Squarespace网站,但是当我这样做时,出现错误“未定义的referenceerror y未定义”。我正在尝试使用Squarespace的表格写给salesforce,但我不知道是否在Squarespace 7.1上保留了YUI。

<script type="text/javascript">Y.namespace('Template').Salesforce = Class.create({


initialize: function (config) {
this.config = config;
},

submit: function () {
var formData = this.getFormData(this.config.sqsFormSubmit);
var phoneNumber = '';

if (formData['phone'] && formData['phone'].length >= 4) {
  phoneNumber = formData['phone'].join('-');
}
var description = '';

for (key in formData) {
  var value = formData[key];

  if (Array.isArray(value)) {
    value = value.join(' ');
  }

  description += key + ': ' + value + '\n';
}

var params = {
  first_name: formData['name'][0],
  last_name: formData['name'][1],
  email: formData['email_address'],
  phone: phoneNumber,
  company: formData['company'],
  lead_source: formData['sqf_lead_source'] || 'web',
  description: description,
  oid: this.config.oid
};

});</script>
javascript yui squarespace
1个回答
0
投票

您可以通过这种方式访问​​'Y'。但是,您的代码可能在“ Y”可用之前运行。将代码包装在窗口“加载”事件监听器中,如下所示:

<script>
window.addEventListener("load", function() {
  console.log(Y); // Your code here.
});
</script>

如果在定位表单时还有其他问题,可能必须使用setTimeoutMutationObserver,以确保可以使用必要的元素。

© www.soinside.com 2019 - 2024. All rights reserved.