【问题标题】:Chrome throwing error with onload and load functionsChrome 使用 onload 和 load 函数抛出错误
【发布时间】:2012-09-26 13:02:58
【问题描述】:

这是可行的,但是我严格的 QA 说不会有控制台错误。

我已经将 iframe 写入 DOM,并设置了 .onload 事件;

var configureSDK = function () {
        alert('lets configure');
    }

    var init = function (config) {
        // pass configurables to global var
        settings = config;
        setupSDK(document);

        function setupSDK(d) {
            // setup iframe
            sdkportal = d.createElement('IFRAME');
            sdkportal.setAttribute('src', '//www.webtekkers.com');
            sdkportal.setAttribute('width', '100%');
            d.body.appendChild(sdkportal);
            sdkportal.onload(configureSDK());
        }
    }

就像我说的那样有效,但 Chrome 正在显示;

未捕获的类型错误:对象 # 的属性“onload”不是函数

现在我知道了,我真的应该为不同的浏览器设置单独的事件 AddEventListener|attachEvent('load|onload') ,但这需要更多的工作。

这只是 Chrome 错了还是我错了?

请不要使用 jQuery 替代品

谢谢你

【问题讨论】:

    标签: javascript google-chrome iframe onload google-chrome-devtools


    【解决方案1】:

    错误信息虽然难以理解,但完全正确。 onload 是一个属性,它的值是undefined,直到你给它赋值。通常它会被分配一个对函数的引用

    您可能的意思是将onload 属性设置为configureSDK() 函数引用:

    sdkportal.onload = configureSDK;
    

    或作为函数调用(如果您在onlaod 中有更多工作要做):

    sdkportal.onload = function() {
      configureSDK();
    };
    

    【讨论】:

    • 谢谢迈克尔,大功告成。我总是忘记它是一个属性而不是一个方法......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多