2011-12-19 21 views
0

として、私はこのAPIにhttp://code.google.com/apis/language/virtualkeyboard/v1/getting_started.htmlGoogleの仮想キーボードブックマークレット

を使用してブックマークレットとしてGoogleの仮想キーボードを使用しようとしてきたが、私はそれをクリックしたときに、そのページをリロードします!

私のコードだという

0123:

(function(){document.body.appendChild(document.createElement('script')).src='https://www.google.com/jsapi?key=my-key';})(); 

google.load("elements", "1", {packages: "keyboard"}); 

function onLoad() {var kbd = new google.elements.keyboard.Keyboard([google.elements.keyboard.LayoutCode.RUSSIAN]);} 


google.setOnLoadCallback(onLoad); 

アップデート:私は解決策は最終的に、それは実際にあるためでリロードするんだ

google.load("elements", "1", {packages: "keyboard"}); 

ので、あなたがこれを置き換えることができます。

google.load("elements", "1", {packages: "keyboard", callback: runKeyboard}); 
function runKeyboard() {var kbd = new google.elements.keyboard.Keyboard([google.elements.keyboard.LayoutCode.RUSSIAN]);} 
+0

実際のブックマークレットコードは何ですか?あなたが質問に貼り付けたものだけであれば、それはうまくいかないでしょう。 [bookmarkletジェネレータ](http://ted.mielczarek.org/code/mozilla/bookmarklet.html)を使用してください。 –

+0

私はコードを見るためにこれを目的でしました、あなたが提案したように動かないでしょう:) –

答えて

1

はあなたのコードの末尾にvoid(0)を追加しようとしたことがありますか? http://www.tizag.com/javascriptT/javascriptvoid.phpから

...あなたは値を返すURLとしてJavaScriptステートメントを使用しない場合は、ブラウザがページをロードしようとします。このような望ましくない動作を防ぐには、このようなステートメントでvoid関数を使用する必要があります。この関数は常にnullを返し、新しいページをロードしません。