创建Chrome扩展程序以将数据发送到本地主机服务器
create chrome extension to send data into localhost server
我想创建一个谷歌浏览器扩展程序,将数据从弹出表单发送到本地主机服务器。 我创建了以下文件。一切正常,但数据不会发送到本地主机服务器。谁能帮我我的错误在哪里?谢谢。
manifest.json
{
"manifest_version": 2,
"name": "server Plug-ins",
"description": "Send data to database",
"version": "1.0",
"icons": {
"48": "icon.png"
},
"permissions": [
"history",
"browsingData",
"tabs",
"<all_urls>",
"http://192.168.1.222/*",
"storage"
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_title": "Send data to server!"
}
}
警报.js
document.write(" i am here . . .");
// Create our XMLHttpRequest object
var hr = new XMLHttpRequest();
// Create some variables we need to send to our PHP file
var url = "http://192.168.1.222/my_parse_file.php";
var fn = document.getElementById("name").value;
var ln = document.getElementById("details").value;
var vars = "name="+fn+"&details="+ln;
hr.open("POST", url, true);
// Set content type header information for sending url encoded variables in the request
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// Send the data to PHP now... and wait for response to update the status div
hr.send(vars); // Actually execute the request
弹出窗口.html
<body>
<label for="">Name</label><br><input type="text" id="name"> <br>
<label for="">Details</label><textarea id="details"></textarea>
<input id="clickme" name="myBtn" type="submit" value="click me">
<script type="text/javascript" src="popup.js"></script>
</body>
弹出窗口.js
function hello() {
chrome.tabs.executeScript({
file: 'alert.js'
});
}
document.getElementById('clickme').addEventListener('click', hello);
我认为问题是您的弹出窗口input
元素无法在上下文中访问,因为alert.js
脚本正在运行。
在alert.js
的上下文中,document
是指在其中注入脚本的选项卡的文档。
您可以执行类似操作以使其工作,将弹出窗口.js文件的内容替换为以下内容:
function hello() {
function contentScript(fn, ln){
document.write(" i am here . . .");
var hr = new XMLHttpRequest();
var url = "http://192.168.1.222/my_parse_file.php";
var vars = "name="+fn+"&details="+ln;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.send(vars);
}
var fn = document.getElementById("name").value;
var ln = document.getElementById("details").value;
chrome.tabs.executeScript({
code: (contentScript.toString() + "'ncontentScript('" + fn + "', '" + ln + "');")
});
}
document.getElementById('clickme').addEventListener('click', hello);
您可以删除alert.js
文件,因为现在,扩展名将直接注入JavaScript代码,而不是注入文件。
相关文章:
- jQuery插件在本地主机上运行良好,但在web服务器上却与bg镜像混淆
- 从服务器/主机获取HTML代码或显示广告代码
- 服务器上出现意外的T_STRING错误,但本地主机上没有
- Meteor测试/部署iOS应用程序以连接真实服务器(而非本地主机)
- 如何在主机服务器上使用 node.js
- !$.support.opacity -- 服务器上的行为与本地主机不同
- JavaScript 位置适用于本地主机而不是服务器
- Jquery-ui 在 Firefox 的本地主机上工作正常,但在服务器上则不能
- 使用 XAMPP 将 CSS 和 Javascript 文件链接到本地主机服务器上的 HTML 文件
- jQuery Ajax 调用适用于本地主机,但不适用于实时服务器
- 当本地主机服务器提供实际页面时,如何使用 socket.io 与另一台服务器通信
- 在getUserMedia捕获MediaStream后,使用WebRTC将其发送到主机服务器
- Javascript不触发FB页面,在主机服务器上工作
- 将javascript与本地主机服务器连接,但页面由其他服务器提供
- 如何在本地主机服务器上使用javascript ajax调用java类函数
- Require.js(+text插件)拒绝加载任何外部文本!模板,即使它们位于我自己的主机服务器
- 从HTTPS页面发送数据到本地主机服务器
- 创建Chrome扩展程序以将数据发送到本地主机服务器
- 本地主机服务器到javascript的数据传输
- 最好的jQuery/Java PHP解决方案为本地主机服务器-客户端实时聊天