我有一个chrome扩展可点击图标,可以调用并显示目标php页面。但是,单击时,我想检索当前浏览器选项卡的完整URL并将其发布到php页面。那个php页面需要简单地回显发送给它的url。看起来很简单,有几个密切相关的SO页面讨论类似的问题,我从中开发了下面的代码。目前,php页面被调用,但我不能让它回应url。我得到的只是array(0) { }
。我已经从精细的SO Q& A中尝试了一些代码修改,但是在这一点上我不确定问题出在哪里......任何解决方案都是可以接受的,我&#39 ; m不受限制或约束于此处尝试的方法。
的manifest.json
{
"manifest_version": 2,
"name": "A chrome extension plugin",
"description": "Some descriptive text.",
"version": "1.0",
"browser_action": {
"default_icon": "anIcon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab"
]
}
popup.html
<!doctype html5>
<html>
<head>
<title>Text</title>
<script src="popup.js"></script>
</head>
<body>
<h1>More Text</h1>
<button id="checkPage">Enlighten me!</button>
</body>
</html>
popup.js
document.addEventListener('DOMContentLoaded', function() {
var checkPageButton = document.getElementById('checkPage');
checkPageButton.addEventListener('click', function() {
chrome.tabs.query({currentWindow: true, active: true}, function(tab){
doc = document;
var form = doc.createElement('form');
form.action = 'http://myGreatSite.com/ABC.php';
form.method = 'post';
var input = doc.createElement('input');
input.type = 'hidden';
input.name = 'url';
input.value = tab[0].url;
form.appendChild(input);
doc.body.appendChild(form);
form.submit();
});
}, false);
}, false);
myGreatSite / ABC.php
<!DOCTYPE HTML5>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Give me the calling URL</title>
</head>
<body>
<h1>Here's the calling URL</h1>
<?php
var_dump($_REQUEST);
var_dump($_POST);
?>
</body>
</html>
答案 0 :(得分:0)
Bahhhh!经过几个小时的颠簸,结果证明,myGreatSite.com安装了SSL证书,即使有一个.htaccess文件允许用http和https调用它,对于我们的目的,它必须像下面。尾随斜线也是一个好主意。我不确定这是为什么......
form.action = 'https://myGreatSite.com/ABC.php/';