roadlabs / cefpython

Automatically exported from code.google.com/p/cefpython
0 stars 0 forks source link

Implement LoadHandler.OnDomReady #32

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Seems that OnLoadEnd is not the same as DOMContentLoaded, when testing loading 
of big image it behaves more like window.onload. We need a built-in event when 
DOM is ready. We should inject javascript to listen for DOMContentLoaded, it is 
the event used by jQuery.ready().

See this topic on CEF forum for more details:
http://magpcss.org/ceforum/viewtopic.php?f=6&t=10277

Original issue reported on code.google.com by czarek.t...@gmail.com on 28 Nov 2012 at 1:10

GoogleCodeExporter commented 9 years ago
This post shows an example of using the CEF DOM API for hooking up
to the DOMContentLoaded event:

http://magpcss.org/ceforum/viewtopic.php?p=17302#p17302

This can also be done in javascript and communicated back with native
code through js bindings. In OnLoadStart() call ExecuteJavascript()
that adds an event listener for DOMContentLoaded, this listener will
call window.CefPython.OnDomReady() that is a js binding. Though, with
the current CEF Python JS binding implementation not every browser has
a JavascriptBindings object set, it is being done explicitily by user,
this complicates things a bit. What if the browser doesn't have js
binding object set, what if we set it, but user overwrites it later?
This solution should not mess up with user js bindings object.

The example that uses the CEF DOM API looks much easier to implement.

Original comment by czarek.t...@gmail.com on 1 Aug 2013 at 9:11

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
See also CEF Issue 1454 "Add callback for document element creation":
https://code.google.com/p/chromiumembedded/issues/detail?id=1454

Original comment by czarek.t...@gmail.com on 17 Jan 2015 at 6:25