1
在过去的几天里,我试图构建Chrome扩展,它将注入按钮到https页面(done :))。一旦按钮被按下,我会从DOM(完成:)读取一些值,并将它们推送到test.php文件(这是问题),它将通过电子邮件将这些变量发送给em。Chrome扩展执行php文件
到目前为止,我创造了这个:
的manifest.json
{
"name" : "test",
"version": "1.0.1",
"manifest_version": 2,
"permissions": [
"tabs", "activeTab", "https://www.googleapis.com/*"
],
"browser_action": {
"default_icon": "icon128.png"
},
"content_scripts": [
{
"js": ["jquery-3.1.1.min.js", "content.js"]
}
],
"background": {
"scripts": [ "jquery-3.1.1.min.js", "background.js" ]
}}
content.js
(function(window, $, undefined){
$('#sendbutton').on('click', function(event) {
var campaignInfo = {
'name' : 'test_name',
'surname' : 'test_surname'
};
var datastring = JSON.stringify(campaignInfo);
chrome.runtime.sendMessage({
method: 'POST',
action: 'xhttp',
url: 'http://localhost:8080/test/test.php',
data: datastring
});
console.log(campaignInfo);
}); })(window, jQuery);
background.js
chrome.runtime.onMessage.addListener(function(request, sender, callback) {if (request.action == "xhttp") { $.ajax({
type: request.method,
url: request.url,
data: request.data,
success: function(responseText){
callback(responseText);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
callback();
}
});
return true; }});
test.php的
<?php if (isset($_POST["data"]) && !empty($_POST["data"])) { $message = $_POST["data"];} mail('[email protected]', 'test', $message); ?>
所以,我能够注入按钮,读取DOM值并发送邮件到发送邮件的test.php,但我无法传递我的数组。
你能告诉我如何传递数组吗?
从content.js campaignInfo阵列通过background.js到test.php的 – rkc
大家好,另外2小时后,我发现了什么是错误的, 固定上面的代码我不得不修改如下:在content.js dataType:'JSON', data:{result:JSON.stringify(campaignInfo)} in php: <?php $ message = $ _POST [“result”]; mail('[email protected]','test',$ message);?> – rkc
@rkc如果你有一个工作解决方案,你应该把它作为(自己)回答并接受它,这样问题是不要留下。或者,如果您认为对其他人没有用处,则可以删除该问题,但要小心,因为重复这样做会触发问题禁止。 – Xan