Chrome on throw和load函数抛出错误

Wil*_*ock 1 javascript iframe google-chrome onload google-chrome-devtools

这是有效的,但我严格的QA说没有控制台错误.

我正在为DOM编写iframe,并设置.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());
        }
    }
Run Code Online (Sandbox Code Playgroud)

就像我说它有效,但Chrome正在展示;

未捕获的TypeError:对象#的属性'onload'不是函数

现在我知道,我应该为不同的浏览器设置单独的事件AddEventListener | attachEvent('load | onload'),但这更有用.

这只是Chrome错误还是我?

请不要jQuery替代品

谢谢威尔

Mic*_*ski 5

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

您可能需要将onload属性设置为configureSDK()函数引用:

sdkportal.onload = configureSDK;
Run Code Online (Sandbox Code Playgroud)

或者作为函数调用(如果你还有更多的工作要做onlaod):

sdkportal.onload = function() {
  configureSDK();
};
Run Code Online (Sandbox Code Playgroud)