[ブラウザの補完機能を使う]
フォームの自動入力 - Chrome ヘルプ
これが一番簡単な気がする。
ただ、Chromeでは補完されたりされなかったり、イマイチ挙動が把握出来ていない。
[ブラウザの拡張機能を使う]
多分いろんなextensionが出ていると思うけど、今回は未調査。
[HTML5のlistとdatalistを使う]
<input autocomplete>-HTML5タグリファレンス
HTML datalist Tag
古いブラウザでは使えない。Chrome20, IE10, FireFox4, Opera9, Safariは未サポート?
activeのINPUT text要素に補完リストを追加するbookmarklet
datalistのidが元ソースと競合しないように注意する必要がある。
javascript: (function (id, list) { var activeElement = document.activeElement; if (activeElement.tagName != "INPUT" || activeElement.type != "text") return; var datalist = document.getElementById(id); if (!datalist) { datalist = document.createElement("DATALIST"); datalist.id = id; for (i = 0; i < list.length; i++) { var option = document.createElement("OPTION"); option.value = list[i]; datalist.appendChild(option); } activeElement.appendChild(datalist); } if (datalist.tagName != "DATALIST") return; activeElement.setAttribute("list", id); })("myDatalist032984032", ["hoge", "fuga"]);[jQueryを使う]
javascript jQuery 入力補完の実装
jQuery UI - オートコンプリート - jQuery 入門
jQueryとjQueryUIを読み込んでactiveElementに.autocompleteで補完リストを追加するbookmarklet。
jQueryとは別にjQueryUIの読み込みが必要な事に気が付かないで苦労した。
元々jQueryが読み込まれているページの場合は再読み込みはせずにそれを使う。
想定しているバージョンと異なる可能性あるので注意が必要。
javascript; (function (bml) { var d = document; var doBml = function () { bml(jQuery); }; var loadScript = function (url, f) { console.log(url); var s = d.createElement("script"); s.src = url; s.onload = f; d.body.appendChild(s); }; var loadjQueryUi = function () { loadScript("//code.jquery.com/ui/1.10.4/jquery-ui.js", doBml); }; if (typeof jQuery == "undefined") { loadScript("//code.jquery.com/jquery-2.0.3.js", loadjQueryUi); } else if (typeof jQuery.ui == "undefined") { loadjQueryUi(); } else { doBml(); } })(function ($) { console.log($().jquery, $.ui.version, document.activeElement); $(document.activeElement).autocomplete({source: ["hoge","fuga"]}); });[Javascripのライブラリを使う]
suggest.js - 入力補完ライブラリ
[おまけ]
focousがある要素はJavaScriptでは"document.activeElement"で取れる。
javascript - How do I find out which DOM element has the focus? - Stack Overflow
Chromeのbookmark barはCtrl+Shift+Bで表示をトグル出来る。
0 件のコメント:
コメントを投稿