我希望创建一个小部件/插件,可以在点击时发送一个简单的变量。这个想法是,当这个小部件被添加到博客中,并被其中一个读者单击时,它会发送一条消息到我的域(例如,www.example.com
),其中包含有问题的博客的url(然后可以用来增加计数或其他东西,例如)。
我对小部件/插件非常陌生,所以我不完全确定这是否可能。我不希望被代码填塞,只是在正确的方向上的几个指针将是巨大的帮助。
原谅我,我还没有尝试任何事情,因为我不确定从哪里开始。如果我需要提供更多的信息,如果我的标签不正确,或者如果我的问题不清楚,请告诉我!
大多数可分发的部件将具有以下方面:
-
小部件脚本(由您控制),并由最终用户包括在他们的网站。比如
<script src="http://example.com/yourAwesomeScript.php"></script>
, example.com是你的网站或者cdn。 -
Widget Container(由最终用户嵌入)告诉脚本在哪里注入Widget代码。如果您的小部件不依赖于位置容器(例如:
你可以使用Javascript库,如jQuery,使你更容易在Javascript中编写代码。
我在下面有一个非常基本的小部件来订阅。我使用PHP输出Javascript,这将允许您的小部件发送动态数据。您还可以向脚本传递参数,如
http://example.com/yourAwesomeScript.php?user_key=1234564789end-user.html
头<script src="http://example.com/yourAwesomeScript.php"></script>
身体<div id="widgetCont"></div>
yourAwesomeScript.php
<?php
if($_POST){
if($_POST['email']){
$new_subscribed = true ; //check and add to database and return if subscribed
if($new_subscribed){
echo "You have successfully subscribed";
}else{
echo "You are already subscribed";
}
}
}else{
?>
$(document).ready(function(){
$input = $('<input/>').prop("type","text").prop("id","widget_email");
$submit = $('<input/>').prop("type","button").prop("value","Subscribe").prop("id","submit_email");
$('#widgetCont').html($input,$submit);
$('#widgetCont #submit_email').click(function(){
$.ajax({
url : "http://example.com/yourAwesomeScript.php",
method : "post",
data : {email:$("#widget_email").val()},
success :function(data){
alert(data);
}
})
});
});
<?php
}
?>
在PHP中,您可以使用cURL
来激活另一个域的代码。您可以在cURL
中设置将发送到该页面的GET或POST变量。然后可以通过$_GET
和$_POST
数组在PHP中对它们进行操作。
cURL示例:http://php.net/manual/en/curl.examples-basic.php
你应该尝试在你的域上设置一个HTTP服务,然后创建一个小部件,对你的HTTP服务执行POST请求。
一个很好的函数是PHP中的cURL
。客户端URL库
这是一个如何使用cURL
的小指南卷发指南