2013-05-13 66 views
0

我使用下面的代码和文件片段构建了我的第一个Chrome扩展程序。如何在Chrome扩展中使用jQuery打开链接?

的manifest.json

{ 
"name": "Test", 
"version": "0.1", 
"manifest_version": 2, 
"description": "First try", 
"browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
    } 
} 

popup.html

<!doctype html> 
<html> 
<head> 
<title>Getting Started Extension's Popup</title> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<script src="jquery.js"></script> 
<script src="popup.js"></script> 
</script> 
</head> 
<body> 
    <input id="input1"> 
    <input id="input2" type="submit"> 
</body> 
</html> 

popup.js

$(document).ready(function() { 
     $('#input2').click(function(){ 
      alert('test'); 
      var whatISearch = $('#input1').val(); 
      //chrome.tabs.create({'url': "https://www.google.com/search?s=" + whatISearch}); 
      window.open("https://www.google.com/search?s=" + whatISearch); 
     }); 
    }); 

正如你看到的,我应该做的就是打开谷歌搜索结果页面在一个新的窗口与用户搜索输入。但不幸的是,它不适合我,所以有什么不对,我怎么能相应这是什么?

+0

对不起丢失选择器'#':-) – 2013-05-13 16:11:41

+0

你在元素被解析之前引用元素。将代码包装在'$()。ready'处理程序中,或者在''之前移动'popup.js'。 – 2013-05-13 16:26:06

+0

@RobW我应该选择browser_action还是page_action? – 2013-05-13 16:31:24

回答

0

你从输入ID的开始丢失了#符号,然后单击input2之前你填充whatISearch,当你点击吧。试试这个...

$('#input2').click(function(){ 
    var whatISearch = $('#input1').val(); 
    window.open("https://www.google.com/search?s=" + whatISearch); 
}); 

此外,作为input1是一个文本输入,使用val()来获取价值,而不是innerText

0

jQuery的ID选择先从#

$('#input1') 

一个解决方案,以检查发生的事情是使用debugger;,这样就可以看到什么是你的收藏中,并且回调是否叫:

var whatISearch = $('#input1').innerText; 
debugger; 
$('#input2').click(function(){ 
    debugger; 
    window.open("https://www.google.com/search?s=" + whatISearch); 
}); 
0

要在Chrome扩展打开一个标签,你可以使用chrome.tabs.create功能:

$('#input2').click(function(){ 
    var whatISearch = $('#input1').val(); 
    chrome.tabs.create({'url': "https://www.google.com/search?s=" + whatISearch}); 
}); 
0

ID选择在JQuery中以#工作,所以改正,并使用

$('#input1').innerText; 

而且,你打开点击提交按钮上的一个窗口,就像下面这样读取回调函数中的input1值。

$('#input2').click(function(){ 
    var whatISearch = $('#input1').innerText; 
    window.open("https://www.google.com/search?s=" + whatISearch); 
}); 
相关问题