我正在开发一个使用webkit(macos / linux)和mshtml(windows)的跨平台webview库。我现在正试图给用户一个回调,允许他们在加载后将自定义javascript代码“注入”页面(例如包装console.log
,将初始数据传递到网页等等)。
我目前的问题在于MSHTML。如果我在致电Navigate2
后立即尝试评估javascript,我会收到错误,例如GetIDsOfNames
对象上的script
方法失败,这是可以理解的,因为它可能为时尚早。我尝试收听其他事件,例如DISPID_DOCUMENTCOMPLETE
或DISPID_NAVIGATECOMPLETE2
,但是来得太晚(例如,在执行页面上的脚本之后,尽管在window.onload之前)。
我想知道在加载页面并解析DOM并且可以评估脚本时,是否有任何方法可以获得通知,但是在实际评估它们之前?