google maps autocompleteの提案を取り戻すためのイベントをキャッチする必要があります。私はそれが文書化されていないことを知っていますが、いくつかの研究をすることで、プロトタイプのハッキングを介してダウンする可能性があることがわかりました。プロトタイプ注入、google maps api
<input type='text' id='myInput'>
<script src="http://maps.google.com/maps/api/js?libraries=places&sensor=false&language=en-EN"></script>
<script>
function catcher(key) { console.log(key); }
function MyProto() {}
MyProto.prototype = new google.maps.MVCObject();
MyProto.prototype.changed = catcher;
var gAuto = new google.maps.places.Autocomplete(
document.getElementById('myInput'), ['geocode']);
// one of two should be commented
//gAuto.__proto__.__proto__.changed = catcher; // every key, including 'predictions'
gAuto.__proto__.__proto__ = MyProto.prototype; // only 'types', '0', and 'place' when selected
</script>
JSFiddleリンク:http://jsfiddle.net/agentcooper/hRyTF/(コンソールを確認してください)
最後の2行を確認してください。 MVCObjectプロトタイプ(最初のコメント付き)で 'changed'関数を直接設定すると、すべてがうまく動作し、 'catcher'関数でキーの '予測'を捕捉できます。問題は、たとえば、私のページにオートコンプリートのインスタンスが2つ必要な場合、キャッチャーが異なる必要があるということです。オートコンプリートのプロトタイプチェーン(最後の行)にカスタムオブジェクトを挿入しようとすると、すべてが失敗します。これを解決する方法はありますか?
EDIT:working version、Sajid :-)
UPDATEのおかげ:Completed the codeは、多分それは2行目誰
ありがとうございます!作業バージョンへのリンクを追加しました – spacevillain