1

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

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

但是,我想在网站 javascript 运行之前检测扩展。因为我不想等待图像完全加载,所以我使用 document.ready() 而不是 window.onload()。但是,我没有事先创建一个 div。如果我的内容脚本使用 run_at:"document start",我还不能创建 div,如果我使用"document end",那就太晚了,document.ready() 已经运行了。

有任何想法吗?

4

1 回答 1

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 不允许在文档之前添加脚本,所以我什至无法在那里测试它。

于 2013-01-14T16:26:08.530 回答