PDA

View Full Version : درخواست کدی که هر لینکی در وبلاگم کلیک شد در یک فایل ثبت بشه؟



vb_nima
جمعه 20 اردیبهشت 1392, 21:30 عصر
با سلام.
آیا کد جاوا اسکریپتی هست که در وبلاگ بگذارم و هر جا هر لینکی کلیک شد به همراه باز شدن صفحه تو فایل هم لینک کلیک شده ذخیره بشه؟؟؟؟
ببینید نمیخوام تو رویداد کلیک تک تک لینکها یک فانکشن بگذارما. میخوام فقط یکبار کدا بگذارم و دیگه خرچی لینک جدید هم اضافه شد خدش ثبت کنه.
مثلا داکیومنت یا body رویدایی ندارند که اگر یک ابجکت کلیک شد اون رویداد فراخونده بشه و مثلا انوجا چک کنیم که اگر ابجکت کلیک شده لینک بوده حالا تو یک فایل ذخیره ش کن؟؟؟؟

ممنون میشم اگر پیشنهادی دارید بدید.
موفق باشید.

Variable
جمعه 20 اردیبهشت 1392, 23:08 عصر
شما باید . بعد از اینکه ادرس لینک رو بدست اوردی به صورت ای جکس به سرور بفرستی . و در سرور در یک فایل ثبت کنی.
document.body.addEventListener('click',function(e) {
if(e.target.nodeName=='A')
{
//console.log(e.target.href);

//send to server By ajax
}
})

vb_nima
جمعه 20 اردیبهشت 1392, 23:15 عصر
شما باید . بعد از اینکه ادرس لینک رو بدست اوردی به صورت ای جکس به سرور بفرستی . و در سرور در یک فایل ثبت کنی.
document.body.addEventListener('click',function(e) {
if(e.target.nodeName=='A')
{
//console.log(e.target.href);

//send to server By ajax
}
})

بسیار عالی .ممنون دقیقا همونی که میخواستم.
فقط یک سوال میمونه برای ارسال به سرور با ajax راحتترین و ساده ترین راه که تو یه وبلاگ هم بتونم انجام بدم چیه؟
توی یک سایت دیدم با jquery این کارا کرده بود.
اگر یک کد ساده همه برای ارسال به سرور بگذارید ممنون میشم.

Variable
جمعه 20 اردیبهشت 1392, 23:36 عصر
همون جی کوئری ساده ترین راهه
. میتونی تو مستندات سایتش یه سرچ کوچیک بزنی.الان حضور ذهن ندارم . خیلی وقته دیگه کارنمیکنم. :(
منتها. یادمه که این تارگت تو بعضی مرورگرها srcElement هست . نمیدونم ای ایی بود یا مرورگرهای موزیلا...
بهرحال برای اینکه تو مرورگرهایی مثله ای یی کار کنه . باید یکم بهینش کنی . مثله همون متد مقید کردن رویداد کلیک و ....

Variable
شنبه 21 اردیبهشت 1392, 01:24 صبح
اول یک تابع که عمل ارسال به سرور رو انجام بده تعریف میکنی. که سه تا پارامتر. ادرس و نام متغیری که سمت سرور میخای بگیری و مقدار داده ایی که میخای ارسال کنی رو بهش میدی.

function sendTo(url,attr,data){
var request = new XMLHttpRequest();
request.open("GET",url+"?"+attr+"="+data);
request.onreadystatechange=function(){

if(request.readyState == 4 )
if( request.status == 200){

console.log("result of server is ="+request.responseText);
}
else {
console.log("error");
}
};
request.send(null);
}


بعد به دوروش میتونی رو لینکهات برنامه بنویسی .
/// METHOD 1
document.body.addEventListener('click',function(e) {
if(e.target.nodeName=='A')
{
sendTo("link.php","href",e.target.href);
}
})
//METHOD 2
link=document.getElementsByTagName('a');
for(a in link){
if (a != "length" && a!="item")
{
link[a].addEventListener('click',function(e){
sendTo("link.php","href",e.target.href)
//e.preventDefault();
})
}
}
بعد در سمت سرور میتونی . مثلا به صورت زیر دیتایی که ارسال کردی رو به دست بیاری و یه پیغام بفرستی به کاربر .

<?php
echo "saved this url :". $_GET['href'];
?>

vb_nima
شنبه 21 اردیبهشت 1392, 03:19 صبح
خیلی ممنون لطف کردید.