Firefoxで編集中ファイルの自動再読込

Inkscapeでプレゼン資料を作っているが,
Inkscapesvgファイルを編集・保存->Firefoxでリロードして描画という作業が面倒だったので,
保存されたら自動でリロードするようにしてみた.
というかid:tzik-tackにやってもらった.


やり方は,次のようなhtmlファイルを用意するだけ.

<html>
  <head>
    <title>Slide</title>
    <script type="application/javascript">
      document.addEventListener("DOMContentLoaded",function(){
        var target = document.getElementById("slide").contentWindow;
        var href = target.location.href;

        (function(){
          var self = arguments.callee;
          var req = new XMLHttpRequest;
          req.open("GET",href,true);
          req.onload = function(){
            if(self.old && req.responseText != self.old){
              target.location.reload(true);
            }
            self.old = req.responseText;
            setTimeout(self,1000);
          };
          req.send(null);
        })();
      },false);
    </script>
  </head>
<body>
<iframe id="slide" height="100%" width="100%" src="slide.svg"/>
</body>
</html>

これで,1秒ごとにファイルが変更されているかを確認し,更新してくれる.
svg以外でもiframeの中身を変えればやってくれる.