2014-01-08 42 views
0

我使用Firefox Addon SDK开发Firefox Mozilla插件/扩展。 现在我想获得字段值“用户”从显示的网站,当我加载项button.Web页的形式向用户点击看起来是这样的:获取网页字段为Javascript变量的内容[Firefox Addon-SDK]

<form name="input" action="html_form_action.asp" method="get"> 
    Username: <input type="text" name="user" id="user" value="name of the user"> 
<input type="submit" value="Submit"> 

所以我需要显示的值“用户名“,在我的Add-on文本框中创建,这是我在Add-on中创建的。

但我想不出如何将数据从网站传递到ADDON VARIABLE/SITE。

回答

2

您需要使用内容脚本执行此操作。假设你有HTML这样的:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
</head> 
<body> 
<form><input type="text" id="txt-field" value="this is the value"/></form> 
</body> 
</html> 

...你需要做的是使用页面MOD模块的内容脚本附加到页面,然后可以获取价值并寄回。

main.js:

const data = require('self').data; 

var currentVal = false; 

require('page-mod').PageMod({ 
    include: 'https://some.url/index.html', 
    contentScriptFile: data.url('script.js'), 
    onAttach: function(worker) { 
    worker.port.on('val', function(data) { 
     currentVal = data; 
     console.log(data); 
    }); 
    } 
}); 

的script.js:

self.port.on('fetch-value', function() { 
    self.port.emit('val', document.querySelector('#txt-field').value); 
}); 

这是一个非常简单的例子,只是为了告诉你如何从main.js通信和内容脚本可以工作。欲了解更多,我强烈建议你上的内容脚本阅读文档:

https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts

+0

这正是我一直在寻找。谢谢你,先生! – TomiL