【发布时间】:2013-12-01 15:27:51
【问题描述】:
我喜欢单击我的 chrome 扩展程序,它会获取当前的标签 URL 并将其插入 MySQL 数据库。看来我必须使用 xhr,但是我对它的工作原理不太了解。我也有点明白Chrome Extension → Web App API → MySQL 的想法。
到目前为止,我有一个有效的 chrome 扩展程序,它可以获取当前的标签 url 并显示它,以及一个连接到我的数据库的 php 文件。但是,我可以使用一些帮助将 url 变量转到 Web API,然后转到我的 php 文件。
最后,我是个新手,如果有人质疑这个问题,我很抱歉。
编辑
这是我的代码和更多详细信息...
currentUrl.js
//grab the current url
chrome.tabs.getSelected(null, function(tab) {
var tabId = tab.id;
tabUrl = tab.url;
document.write(tabUrl);
});
popup.html
<!doctype html>
<html>
<head>
<script src="currentUrl.js"></script>
<script language="javascript" type="text/javascript">
</head>
</html>
插入db.php
<?php
$con=mysqli_connect("localhost","root","my_pw","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO urlHistory (Urls)
VALUES ('Url'");
mysqli_close($con);
?>
manifest.json
{
"manifest_version": 2,
"name": "Current Url",
"description": "Grab tab's current url",
"version": "1.0",
"browser_action": {
"default_icon": "url_icon.png",
"default_popup": "popup.html"
},
"permissions": [
"tabs"
// dont't I have to put something here?
]
}
【问题讨论】:
-
您所指的“Web API”实际上是您的 PHP 文件。 PHP 文件是否“知道”如何在数据库中存储 URL 列表?如果是,您唯一需要做的就是从您的扩展程序向您的 PHP 文件(即服务器上指向 PHP 文件的 URL)进行 AJAX 调用,并将 URL 列表作为 POST 数据传递。详细说明您的代码(扩展、PHP)可以做什么,以便我们填补空白。
-
你有登录机制吗?您打算如何阻止其他人访问您的数据库?
-
我将此代码用作学习经验,只是想了解 Ajax。
-
您尝试过我下面提出的解决方案吗?它对你有用吗?
标签: mysql google-chrome-extension xmlhttprequest