0

我使用下面的代码和文件片段构建了我的第一个 Chrome 扩展。

清单.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);
        });
    });

如您所见,我应该做的是在带有用户搜索输入的新窗口中打开谷歌搜索结果页面。但不幸的是它对我不起作用,所以有什么问题吗?我该如何纠正这个问题?

4

4 回答 4

0

您在输入 ID 的开头缺少 # 符号,并且您whatISearch在单击之前填充input2,而不是在单击它时填充。尝试这个...

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

此外,作为input1文本输入,用于val()获取值,而不是innerText.

于 2013-05-13T16:08:06.850 回答
0

要在 chrome 扩展中打开选项卡,您可以使用chrome.tabs.create以下功能:

$('#input2').click(function(){
     var whatISearch = $('#input1').val();
     chrome.tabs.create({'url': "https://www.google.com/search?s=" + whatISearch});
});
于 2013-05-13T16:08:21.350 回答
0

JQuery 中的 ID 选择器与 # 一起使用,因此请更正并使用

$('#input1').innerText;

此外,您在单击提交按钮时打开一个窗口,因此请仅在回调函数中读取 input1 值,如下所示。

$('#input2').click(function(){
     var whatISearch = $('#input1').innerText;
     window.open("https://www.google.com/search?s=" + whatISearch);
});
于 2013-05-13T16:10:05.223 回答
0

jQuery id 选择器以 开头#

$('#input1')

检查发生了什么的解决方案是使用debugger;,以便您可以查看集合中的内容以及是否调用了回调:

var whatISearch = $('#input1').innerText;
debugger;
$('#input2').click(function(){
     debugger;
     window.open("https://www.google.com/search?s=" + whatISearch);
});
于 2013-05-13T16:03:43.213 回答