在没有为我找到解决方案的情况下进行搜索,
我需要能够在显示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>
然后,在我的网站上,我尝试使用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总是如此:未定义
知道我做错了吗?
非常感谢!
答案 0 :(得分:2)
HI Toni,
Google Chrome扩展程序使用异步API
function getURL_please(){
chrome.tabs.getSelected(null, function(tab) {
return tab.url;
});
}
以上将始终返回null。如果你想让它正常工作。
function getURL_please(){
chrome.tabs.getSelected(null, function(tab) {
var url = tab.url;
// Do what you want here.
});
}
您需要在获取网址后打开窗口。但有一个问题,你在网站上的意思是什么?您无法直接在您的网站上运行Chrome扩展程序JavaScript,因此我假设通过“内容脚本”(最有可能,只是确定)?
如果您使用内容脚本,为什么需要使用Extension API?您可以使用window.location.href