从Chrome扩展弹出窗口获取价值

bar*_*dog 5 html javascript google-chrome

我想知道,如果我点击图标时有一个弹出窗口的chrome扩展,并且弹出窗口有一个文本框来输入数据,那么javascript会在文本框中获取文本的样子是什么?

更新:我知道如何从文本框中获取值,但我的问题是,如何专门访问popup.html文件的元素?我尝试访问document.getElementById等,但它获取实际页面内容中的元素,而不是我的自定义弹出窗口.

小智 7

我们可以通过以下列方式绑定某个事件的事件侦听器来获取弹出页面的文本框中的值,例如按钮的单击事件:

假设manifest.json文件是这样的:

{
  "manifest_version": 2,

  "name": "Wonderful extension",
  "description": "Wonderful extension - gets value from textbox",
  "version": "1.0",

  "browser_action": {
   "default_icon": "images/icon.png",
   "default_popup": "popup.html"
  } 
}
Run Code Online (Sandbox Code Playgroud)

和popup.html是这样的:

<!DOCTYPE html>
<html>
  <head>
    <title>Wonderful Extension</title>
    <script src="popup.js"></script>     
  </head>
  <body>   

    <div style="padding: 20px 20px 20px 20px;">           
        <h3>Hello,</h3>
        <p>Please enter your name : </p>         
        <input id="name_textbox" />                   
         <button id="ok_btn" type="button">OK</button>
    </div>      

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后我们可以绑定文档中的事件,以便通过以下方式从文本框中获取值:

文件popup.js:

document.addEventListener('DOMContentLoaded', documentEvents  , false);

function myAction(input) { 
    console.log("input value is : " + input.value);
    alert("The entered data is : " + input.value);
    // do processing with data
    // you need to right click the extension icon and choose "inspect popup"
    // to view the messages appearing on the console.
}

function documentEvents() {    
  document.getElementById('ok_btn').addEventListener('click', 
    function() { myAction(document.getElementById('name_textbox'));
  });

  // you can add listeners for other objects ( like other buttons ) here 
}
Run Code Online (Sandbox Code Playgroud)

要访问弹出页面的其他元素,我们可以使用类似的方法.