javascript - 在 Codepen 中检测 CSS-only 更新

标签 javascript jquery css codepen

在 Codepen 中,启用自动更新预览功能后,在编辑 CSS Pane 时,Codepen 会在一小段延迟后重新绘制预览 Pane 。这不是新闻。但是,除非对 javascript Pane 进行编辑,否则它似乎不会重新初始化您的 javascript。因此:当您进行仅 CSS 更改时,JS 不会重新执行。我希望 JS 监听器检测何时有重绘屏幕的 CSS 更新。

我从监听 XHR 请求开始,这是可以实现的,但我意识到这不是我需要监听的请求,而是响应。好吧,确实是 DOM 更新是由于某些 JS 回调收到并处理 XHR 响应后发生的。而且由于预览 Pane 看起来封装在 iframe 中,我不确定我的可执行 javascript 是否有权检测这样的更新——我不确定 Code Pen 如何处理这些更改。也许更好的问题是,如何检测 iframe 屏幕重绘?没有把握。但这里有一个非工作*片段来说明我正在努力实现的目标:

在此示例中尝试编辑 CSS p {color} 值:https://codepen.io/anon/pen/oaPvYJ并观察 rgb 文本值未更新以匹配。

最佳答案

您可以使用 MutationObserver 来观察 head 标签,这样当他们插入 CSS 时您可以调用一个函数。 https://codepen.io/WebNesting/pen/KGxPbZ

var setText = function() {
  $("p").text(function() {
    return $(this).css("color");
  });
};

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    setText();
  });
});

observer.observe($("head")[0], {
    childList: true,
});
setText();

关于javascript - 在 Codepen 中检测 CSS-only 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52933974/

相关文章:

javascript - "for (… in …)"循环中的元素顺序

javascript - 使用 jquery 导入某些库会卡住整个 xpage

jQuery,从输入前置数据不起作用

javascript - JQuery 使水平滚动页面太大

css - 在 CSS 中使用固定位置有什么限制吗?

javascript - 打开相对于鼠标位置的 CSS3/HTML5 模态对话框

javascript - 如何使用Alpha输入计算两种颜色的柔光混合值?

javascript - 如何使用 gpx 文件将公里/英里标记添加到 leafletjs map ?

javascript - 如何使用prototype.js获取html表单文本字段中的值?

javascript - Bootstrap 3中Datatables插件显示格式的自定义