2011-12-19 2 views
0

я пытался использовать виртуальную клавиатуру Google, как букмарклет с помощью этого API http://code.google.com/apis/language/virtualkeyboard/v1/getting_started.htmlGoogle Virtual Keyboard Как букмарклет

, но всякий раз, когда я нажимаю на него, он перезагружает страницу !,

, что мой код :

(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

Каков фактический код букмарклета? Если это то, что вы вложили в вопрос, это не сработает. Используйте [генератор букмарклетов] (http://ted.mielczarek.org/code/mozilla/bookmarklet.html). –

+0

Я сделал это с целью увидеть код, он не будет работать, как вы сказали :) –

ответ

1

Вы пытались добавить void(0) в конце кода?

От http://www.tizag.com/javascriptT/javascriptvoid.php:

... если вы когда-нибудь сделать, используйте оператор JavaScript как URL, который возвращает значение, браузер будет пытаться загрузить страницу. Чтобы предотвратить это нежелательное действие, вам необходимо использовать функцию void для такого оператора, который всегда будет возвращать null и никогда не загружать новую страницу.

Смежные вопросы