получить текущий URL из popup.hml и отправить его в external.js - PullRequest
1 голос
/ 21 февраля 2011

искал, не найдя решения для меня,

Мне нужно иметь возможность отправлять и получать URL-адрес текущей вкладки, когда отображается расширение Chrome:

Это мой popup.html:

<html>
<head>

<style>
div, td, th { color: black; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<script>
  function getURL_please(){
      chrome.tabs.getSelected(null, function(tab) {    
    return tab.url;
});   
  }
</script>
<script src="http://keepyourlinks.com/API/public/chrome.js"></script>
</head>
<body style="width: 650px;height:600px;margin:0px;paddin:0px;width:100%;">
    <span class="keeper">keep</span>       
</body>
</html>

Затем, в моем webiste, на файле chrome.js я пытаюсь:

$("body").ready(function(){
        var url = getURL_please();
    $(".keeper").click(function(event) {
        event.preventDefault(); 
        window.open("http://keepyourlinks.com/API/public/compartir_link.php?url="+url,'about to keep', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=650,height=600');
    });         
});

Но URL всегда: Undefined

Любая идея, что яя делаю не так?

Большое спасибо!

1 Ответ

2 голосов
/ 21 февраля 2011

HI Toni,

В расширениях Google Chrome используется асинхронный API,

function getURL_please(){
  chrome.tabs.getSelected(null, function(tab) {    
    return tab.url;
  });   
}

Выше всегда будет возвращаться ноль.Если вы хотите, чтобы он работал правильно.

function getURL_please(){
  chrome.tabs.getSelected(null, function(tab) {    
    var url = tab.url;
    // Do what you want here.
  });   
}

Вам нужно открыть окна после того, как вы получите URL.Один вопрос, однако, что вы имеете в виду "на вашем сайте"?Вы не можете запустить Chrome Extension JavaScript непосредственно на своем веб-сайте, поэтому я предполагаю, что через «Сценарий содержимого» (скорее всего, просто проверяя)?

Если вы используете сценарий содержимого, зачем вам нужно использовать API расширения??Вы можете просто использовать window.location.href

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...