相关疑难解决方法(0)

如何正确接收来自 XUL iframe 的 DOMContentLoaded 事件?

我正在开发一个最小的 Firefox 扩展,它将网页加载到 XUL iframe 中。(我也尝试过html:iframe,但得到了相同的结果。)该页面可能需要一些时间才能完全加载 - 并且我正在尝试接收该DOMContentLoaded事件,该事件应该在该load事件之前发生。

(主要原因是我试图注入 CSS 样式表,这应该在 DOMContentLoaded 事件之后立即完成,而不是等待并让页面显示为“无样式”,直到加载事件。但是,这将用于还有其他原因,因此特定于 CSS 的替代方案并不是可行的解决方法。)

但是,到目前为止,我只能接收load事件 - 而不能DOMContentLoaded接收readyState事件。

使用下面的 XUL 应该可以轻松重现该问题,只需在 Firefox 地址栏中输入 XUL 的路径(给定其chrome://URL)(类似于):

<?xml version="1.0"?>
<!DOCTYPE window>
<window xmlns:html="http://www.w3.org/1999/xhtml"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <script type="application/x-javascript">
        window.addEventListener("DOMContentLoaded", function(event){
            try{
                var outElem = document.getElementById("out");
                var out = function(s){
                    outElem.value += s + "\n";
                };

                var frameTest = document.getElementById("iframe-test");

                out("start: " + frameTest.contentDocument.readyState);
                frameTest.addEventListener("DOMContentLoaded",
                    function(e){
                        out("DOMContentLoaded! " + …
Run Code Online (Sandbox Code Playgroud)

javascript dom xul firefox-addon dom-events

5
推荐指数
1
解决办法
3732
查看次数

标签 统计

dom ×1

dom-events ×1

firefox-addon ×1

javascript ×1

xul ×1