2013-08-21 4 views
2

Я пытаюсь создать расширение для перевода веб-страницы с помощью google translate. Я сочиняю url как: url google translate + current tab + &sl=auto&tl=it&hl=&ie=UTF-8 но не работает. Что не так?activeTab.url Расширение Safari

Спасибо

<script> 
safari.application.addEventListener("command", performCommand, false); 

function performCommand(event) { 
    if (event.command == "translate") {  
     var currentTab.url = safari.application.activeBrowserWindow.currentTab.url;  
     var rUrl = "http://translate.google.it/translate?u=" + encodeURIComponent(currentTab.url) + "&sl=auto&tl=it&hl=&ie=UTF-8";  
     safari.application.activeBrowserWindow.activeTab.url(rUrl); 
    } 
} 
</script> 

ответ

3

В целом это правильно, но есть несколько простых ошибок.

  1. В строке 6, var currentTab.url недействителен синтаксис. Просто вызовите переменную примерно как currentUrl.

  2. На линии 6 это safari.application.activeBrowserWindow.activeTab не safari.application.activeBrowserWindow.currentTab.

  3. В строке 8, url не является функцией, это свойство. Просто назначьте его равным.

Это должно работать:

<script> 
safari.application.addEventListener("command", performCommand, false); 

function performCommand(event) { 
    if (event.command == "translate") {  
     var currentUrl = safari.application.activeBrowserWindow.activeTab.url; 
     var rUrl = "http://translate.google.it/translate?u=" + encodeURIComponent(currentUrl) + "&sl=auto&tl=it&hl=&ie=UTF-8";  
     safari.application.activeBrowserWindow.activeTab.url = rUrl; 
    } 
} 
</script> 
+0

Привет Мэтт, спасибо! Теперь кнопка на панели инструментов работает, но не загружает текущий url. Возможно, здесь: encodeURIComponent (currentUrl) https://www.dropbox.com/s/uemccj6urji0vud/error.png – francy89

+0

url google translate + current tab + & sl = auto & tl = it & hl = & ie = UTF-8 не показывает – francy89

+0

Убедитесь, что что «Уровень доступа» установлен в «Все» в расширителе. –

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