检测$(文档).ready()上的Chrome扩展程序

时间:2013-01-14 15:50:00

标签: jquery google-chrome document-ready

在我的网站中我想检测,是否安装了我的chrome扩展程序。 通常会使用自定义脚本来创建一些

<div id="extensionExists"></div>.

但是,我想在网站javascript运行之前检测扩展名。 由于我不想等待图像完全加载,我使用document.ready()而不是window.onload()。 但是,我未能事先创建一个div。 如果我的内容脚本使用run_at:“document start”,我还无法创建div,如果我使用“document end”,则为时已晚,document.ready()已经运行。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

嗯......据我所知,没有干净的解决方案。我唯一的想法是在文档完全加载之前使用MutationObserver来访问文档但是我没有时间正确地测试它...

var obs = new WebKitMutationObserver(function ( mutations ) {
  console.log( mutations );
  mutations.forEach(function ( mutation ) {
    var newNodes = mutation.addedNodes;
    console.log( newNodes );
    // newNodes should now contain a NodeList which contains all nodes that were created right now
    // you should be able to create your element now
    // consider using obs.disconnect(); after you have found your entry point.
  });
});

obs.observe( document, { childList: true } );

不保证它会做任何事情。 jsFiddle不允许在文档之前添加脚本,所以我甚至无法在那里测试它。