2

我最近开始学习 chrome ext。我遇到了这个问题。基本上我只是想将一个字符串转换为相应的数字。例如 a=1、b=2、c=3... 等等。因此,如果我尝试使用 html 表单来获取输入字符串,然后在提交按钮上使用 onclick,我希望我的 javascript 文件将字符串转换为数字并在同一个输入文本框中打印出值。

这是我当前的代码,如果我使用提示符获取输入,它工作正常。我的问题是如何调用 onclick,因为清单版本 2 限制了内联 js。

显现

{
  "name": "String converter",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Convert string to number",
  "browser_action": {
    "default_icon": "icon.ico",
    "default_popup": "popup.html"
  }

}

弹出.html:

<!doctype html>
<html>
<head>
 <title>Convert string</title>
    <style>
     body {
        min-width:160px;
        overflow-x:hidden;
      } 
    </style>
    <script src="popup.js"></script>
</head>
<body>
    <input type="text" id="result" />
    <!--I need the button here-->
</body>
</html>

popup.js(我只是从教程中复制并粘贴并修改它)

var req = new XMLHttpRequest();
req.open(
    "GET",
    "http://api.flickr.com/services/rest/?" +
        "method=flickr.photos.search&" +
        "api_key=90485e931f687a9b9c2a66bf58a3861a&" +
        "text=hello%20world&" +
        "safe_search=1&" +  // 1 is "safe"
        "content_type=1&" +  // 1 is "photos only"
        "sort=relevance&" +  // another good one is "interestingness-desc"
        "per_page=20",
    true);
req.onload = test;
req.send(null);


function test(){
    var s=prompt("enter string");
    var result ="";
    for(var i =0; i<3; i++){
        if(s.charAt(i) == "a"){
            result += "1"
        }
        else if(s.charAt(i) == "b"){
            result += "2"
        }
        else if(s.charAt(i) == "c"){
            result += "3"
        }

    document.getElementById("result").value = result;

}

谢谢!

4

1 回答 1

1

将此按钮代码放置在您想要按钮的位置:

<button id='sbmt'>Submit</button>

popup.js添加这些行来监听上面按钮的点击事件。

function myAlert(){
 alert('Button Clicked');
}
document.addEventListener('DOMContentLoaded', function () {
document.getElementById('sbmt').addEventListener('click', myAlert);
});
于 2013-08-27T11:46:57.613 回答