http://itpro.nikkeibp.co.jp/article/COLUMN/20070118/259015/
Adobe Flashと連携させてみては?
Flash側で
function() {
ExternalInterface.call("checkjs");
};
を定期的に実行し、html側で
<script type="text/javascript">
function checkjs () {
return true;
}
</script>
とでもしておき、ExternalInterface.callがnullを返すならばFlash側でエラーを返してあげればいいのではと思います。
1と同じような考えですが見えないフレームを作り、
そのフレーム内をリロードしてそこで判定していけば実現できそうです。
ただし延々ページ読み込みのサウンドが流れてしまいそうですが...
なるほど、フラッシュを使うわけですね。
工夫すると他にもなんかありそうですね。