在网页刷新Microsoft Edge之前,JavaScript对象未定义

时间:2016-10-21 13:56:15

标签: javascript html magento onclick microsoft-edge

我正在使用过去员工的一些代码。有问题的phtml文件有一个带onclick事件的按钮:

<button title="Submit" class="greenButton" id="submitBtn" onclick="loginOnepage.forgotpasswd()" type="button">Submit</button>

它还有一些JavaScript:

  var loginOnepage = new LoginOnePage(
      {
          formId: 'forgot-form-onepage',
          postUrl:'<?php echo $this->getUrl('checkout/cart/forgotpassword', array('_secure' => true)); ?>',
          formNewCustomer: 'form-validate'

      }
  );

在单独的js文件中,是LoginOnePage()原型:

var LoginOnePage = Class.create();
LoginOnePage.prototype = {  

    forgotpasswd: function(){
        /* code here */
    },

    ....

onclick事件正在调用forgotpasswd原型中创建的LoginOnePage方法。出于某种原因,当最初登陆按钮所在的网页时,单击按钮时不会发生任何事件。检查控制台会出现此错误:

'LoginOnePage' is undefined

当我刷新页面时,一切正常。没有错误。

这只发生在Microsoft Edge中。

我现在的怀疑是第一次在网页上没有加载包含原型的单独的js文件,但是我不明白为什么刷新将一切设置为正确...

我的公司也在使用Magento作为电子商务平台。

1 个答案:

答案 0 :(得分:0)

解决。问题是js文件,原型代码设置为在xml文件中异步加载。 - jakewies