
Contents
- ソースとテスト用ファイル一式
- 使い方
ソースとテスト用ファイル一式
下のファイル一式を、fxAutoReload_util.zipにまとめました(2.65KB)。
test
<!DOCTYPE HTML><html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="fxAutoReload_util.css"> <script src="fxAutoReload_util.js"></script> </head> <body> <h1>Firefox Auto Reload Utility</h1> <div class="input"> <input class="check" type="checkbox"> <input class="text" value='<img src="test.png">'> </div> <div class="input"> <input class="check" type="checkbox"> <input class="text" value='<object data="test.svg"></object>'> </div> <div class="input"> <input class="check" type="checkbox"> <input class="text" value='<iframe src="test.html"></iframe>'> </div> </body> </html>
window.addEventListener('load', function() { var chk = document.getElementsByClassName('check'), len = chk.length; for (var i = 0; i < len; i++) { var c = chk[i]; c.id = i; appendTag(c); if (c.checked) enableAutoReload(c); c.onclick = function(e) { enableAutoReload(null, e); }; } }); function appendTag(c) { var v = c.parentNode.getElementsByTagName('input')[1].value; if (v === '') return; var cid = 'container' + c.id, d = document.getElementById(cid); if (d === null) { d = document.createElement('div'); d.id = cid; document.body.appendChild(d); } d.innerHTML = v; var f = d.firstChild, tgn = f.tagName; if (! (tgn === 'IFRAME' || tgn === 'IMG' || tgn === 'OBJECT')) { d.parentNode.removeChild(d); } } function enableAutoReload(c, e) { var t = c || e.target, i = t.id, d = document.getElementById('container' + i), sid = 'script' + i, s = document.getElementById(sid); appendTag(t); if (d === null) return; if (t.checked && s === null) { var f = d.firstChild, s = document.createElement('script'); s.id = sid; s.src = f.src || f.data; document.body.appendChild(s); } else if (!t.checked && s !== null) { s.parentNode.removeChild(s); } }
body { margin: 1em; } h1 { font-size: 1.5em; margin-bottom: 0; } div.input { background: whitesmoke; margin: 10px 0; white-space: nowrap; } input.text { background: whitesmoke; border: 0; margin-left: -5px; padding: 5px; width: 90%; } input.check { margin-left: 10px; vertical-align: middle; }
使い方
事前に
タグ左側のチェックボックスをスイッチとして、昨日の最後に書いた裏技的な

Auto Reload
SyntaxError: illegal character
SyntaxError: expected expression, got '<'
↓

今回は
自動リロードさせたいソースファイル名が決まっていれば、このテンプレを使うより、新規に