2010-12-08 21 views
9

Câu hỏi này đề cập đến tiếp thị liên kết, nhưng thực sự là một câu hỏi chung về chặn siêu liên kết trước khi chúng chuyển sang trang khác, nơi bạn có thể đăng nhập hoạt động của khách truy cập vào cơ sở dữ liệu.Với jQuery, Làm cách nào để tôi chặn các sự kiện nhấp siêu liên kết Tạm thời?

Khách hàng tiếp thị liên kết của tôi có một câu hỏi thực sự hay. Hãy tưởng tượng một tình huống mà bạn có các sản phẩm được lấy từ Amazon qua API của nó, được cung cấp từ khóa giống. Bây giờ hãy tưởng tượng một khách truy cập nhấp vào một trong những sản phẩm đó để xem nó trên Amazon. URL cho sản phẩm đó có thể trông như thế này (và điều này chỉ là một bản demo):

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20

Nhưng đoán có gì sai với điều đó? Nó không đi qua từ khóa hạt giống đó. Vì vậy, chúng tôi không biết từ khóa hạt giống nào hiệu quả nhất. Thay vào đó, cô đã có nhu cầu chúng tôi có thể vượt qua những điều sau đây và sau đó theo dõi nào đó:

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20&seed=laptops

Tôi không thấy bất kỳ tài liệu trên Amazon, nơi chúng tôi có thể vượt qua thông số phụ và sau đó theo dõi họ trong các báo cáo bởi một bộ lọc .

Vì vậy, điều duy nhất tôi có thể nghĩ đến là chúng ta cần nắm bắt nhấp chuột trước khi nó chuyển sang Amazon. Nói cách khác, trước khi sự kiện đó xuất hiện và được thực hiện, bằng cách nào đó trong jQuery, tôi có thể chặn nó trước, phân tích cú pháp URL cho liên kết đó, thêm thông tin từ khóa hạt giống thừa, gửi nó qua AJAX trở lại trang PHP và cơ sở dữ liệu và sau đó phát hành sự kiện đó để nó được thực hiện và trình duyệt sẽ chuyển sang Amazon.

Có ai biết cách thực hiện điều này trong jQuery không? Tôi biết phần AJAX - không phải là phần đánh chặn nhấp mà lấy nhấp chuột, sau đó phát hành nó.

Trả lời

3
var seed = "&seed=laptops"; 
$("a").live('click',function(){ 
    $(this).attr('href', $(this).attr('href')+seed); 
}); 
20

Bạn có thể ràng buộc một sự kiện click vào tất cả các thẻ neo, như

$("a").click(function(){ 
    // write your code 
}); 

Nếu bạn muốn làm hành động mặc định sau đó đặt một return true; ở phần cuối của chức năng này.

+0

Bingo! Đây chính xác là những gì tôi cần. Tôi không biết điều này là có thể - cảm ơn bạn rất nhiều! :) Tôi đã thử nghiệm với IE7 +, Opera (mới nhất), Chrome (mới nhất), FF (mới nhất) và Safari/Windows (mới nhất) và nó hoạt động. Điều bổ sung duy nhất tôi thêm vào là "var u = $ (this) .attr ('href');" để tôi biết URL nào đã được nhấp. – Volomike

+3

Câu trả lời xuất sắc và súc tích. Như một bản cập nhật, trong các phiên bản sau của jQuery, một cách thích hợp hơn là gọi '$ (" a "). ('Click', function() {...' – Trevor