gpt4 book ai didi

jquery - 如何延迟mozilla浏览器的功能

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:40 24 4
gpt4 key购买 nike

我的 ImageSlider 代码在 Chrome 中完美运行,但在 Mozilla 中它不起作用,如果我发出一些警报然后它起作用可能是因为有了警报它有时间从背景中的 xml 加载值,如何延迟 init init ()功能。

HTML 代码::

$(document).ready(function () {
getData();
//alert('START');

1});

JS 代码::

  * DOMContentLoaded event handler -*/
var domReadyEvent =

{

name: "domReadyEvent",

/* Array of DOMContentLoaded event handlers.*/

events: {},

domReadyID: 1,

bDone: false,

DOMContentLoadedCustom: null,



/* Function that adds DOMContentLoaded listeners to the array.*/

add: function(handler)

{

/* Assign each event handler a unique ID. If the handler has an ID, it has already been added to the events object or been run.*/

if (!handler.$$domReadyID)

{

handler.$$domReadyID = this.domReadyID++;



/* If the DOMContentLoaded event has happened, run the function. */

if(this.bDone)

{

handler();

}



/* store the event handler in the hash table */

this.events[handler.$$domReadyID] = handler;

}

},



remove: function(handler)

{

/* Delete the event handler from the hash table */

if (handler.$$domReadyID)

{

delete this.events[handler.$$domReadyID];

}

},



/* Function to process the DOMContentLoaded events array. */

run: function()

{

/* quit if this function has already been called */

if (this.bDone)

{

return;

}



/* Flag this function so we don't do the same thing twice */

this.bDone = true;



/* iterates through array of registered functions */

for (var i in this.events)

{

this.events[i]();

}

},



schedule: function()

{

/* Quit if the init function has already been called*/

if (this.bDone)

{

return;

}



/* First, check for Safari or KHTML.*/

if(/KHTML|WebKit/i.test(navigator.userAgent))

{

if(/loaded|complete/.test(document.readyState))

{

this.run();

}

else

{

/* Not ready yet, wait a little more.*/

setTimeout(this.name + ".schedule()", 100);

}

}

else if(document.getElementById("__ie_onload"))

{

/* Second, check for IE.*/

return true;

}



/* Check for custom developer provided function.*/

if(typeof this.DOMContentLoadedCustom === "function")

{

/* if DOM methods are supported, and the body element exists (using a double-check

including document.body, for the benefit of older moz builds [eg ns7.1] in which

getElementsByTagName('body')[0] is undefined, unless this script is in the body section) */

if(typeof document.getElementsByTagName !== 'undefined' && (document.getElementsByTagName('body')[0] !== null || document.body !== null))

{

/* Call custom function. */

if(this.DOMContentLoadedCustom())

{

this.run();

}

else

{

/* Not ready yet, wait a little more. */

setTimeout(this.name + ".schedule()", 250);

}

}

}

return true;

},



init: function()

{

/* If addEventListener supports the DOMContentLoaded event.*/

if(document.addEventListener)

{

document.addEventListener("DOMContentLoaded", function() { domReadyEvent.run(); }, false);

}



/* Schedule to run the init function.*/

setTimeout("domReadyEvent.schedule()", 100);



function run()

{

domReadyEvent.run();

}



/* Just in case window.onload happens first, add it to onload using an available method.*/

if(typeof addEvent !== "undefined")

{

addEvent(window, "load", run);

}

else if(document.addEventListener)

{

document.addEventListener("load", run, false);

}

else if(typeof window.onload === "function")

{

var oldonload = window.onload;

window.onload = function()

{

domReadyEvent.run();

oldonload();

};

}

else

{

window.onload = run;

}



/* for Internet Explorer */

/*@cc_on

@if (@_win32 || @_win64)

document.write("<script id=__ie_onload defer src=\"//:\"><\/script>");

var script = document.getElementById("__ie_onload");

script.onreadystatechange = function()

{

if (this.readyState == "complete")

{

domReadyEvent.run(); // call the onload handler

}

};

@end

@*/

}

};



var domReady = function(handler) { domReadyEvent.add(handler); };

domReadyEvent.init();





/* Create ImageFlow instances when the DOM structure has been loaded */

domReady(function()

{

var instanceOne = new ImageFlow();

instanceOne.init({ ImageFlowID:'myImageFlow' });

});

最佳答案

我不理解你的代码,但可以告诉你,添加延迟来解决这样的问题是糟糕的编程习惯。

而是找出导致该行为的原因并尝试修复它。

您可以改用回调吗?

关于jquery - 如何延迟mozilla浏览器的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17443169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com