• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

Admin

Well-Known Member
Staff member
Administrator
Đây là code để tạo popunder (quảng cáo popup) đơn giản và dễ dàng nhất

Code này làm việc trên Firefox, Chrome, IE
Đặc biệt là có thể popup nhiều link mà không sợ bị google chrome chặn như mấy cái code khác


Tính năng

  • Set popup với nhiều options khác nhau
  • Popup được nhiều link cùng lúc mà không phải sửa nhiều code
  • Chống bị google chrome blocker
  • Hoạt động độc lập, không cần dùng tới thư viện bên ngoài như jquery hay bất kỳ cái gì khác
  • Gọn nhẹ
  • Chạy tốt với Chrome 30 mới nhất hiện tại và các phiên bản FF khác
  • Popup chạy nhanh

Nhược điểm

  • Nếu google chrome để allow popunder cho 1 số site mình set thì có thể nó sẽ popup ra nhiều lần (nhưng tỉ lệ người rỗi hơi đi allow cho từng url để nó nhảy ra popup là cực kỳ ít và chắc chẳng ai ... đến nối như vậy)

Update

  • 25/7/2013 - Do hơi chủ quan nên ko test ở IE 6, 7, 8, nên popup không hoạt động, đã fix

Mình đã test trên cả Mac OS và Windows (mượn của người khác để test và code luôn) thì ok, tuy nhiên có thể sau này vẫn có bug phát sinh ^^! cái này ko lường trước đc, có gì thì sẽ update sau
Code:
/**
* @author        Phan Thanh Cong <chiplove.9xpro at gmail dot com>
* @since        June 14, 2012
* @version        1.2
* @since        Jul 25, 2013 - Fixed bugs on IE 6,7,8

***** CHANGE LOGS *****
* 1.2 - Jul 5, 2013 - Anti Google Chrome Blocker
* 1.3 - Jul 25, 2013 - Fixed bugs on IE 6,7,8
*/
var Light = Light || {};
Light.Popup = {
popName: 'Chip-LightPopup',
alwaysPop: false, // refresh = new pop
onNewTab: true,
/**
* 1: window onclick,
* 2: window onload -> document onclick
*/
eventType: 1,
defaults: {
width: window.screen.width,
height: window.screen.height,
left: 0,
top: 0,
location: 1,
tollbar: 1,
status: 1,
menubar: 1,
scrollbars: 1,
resizable: 1
},
newWindowDefaults: {
width: window.screen.width - 20,
height: window.screen.height - 20
},
__newWindow: {
scrollbars: 0
},
__counter: 0,
create: function (link, options) {
var optionsOriginal = options = options || {},
me = this;
var popName = me.popName + '_' + (me.__counter++);
var keys = ['onNewTab', 'eventType', 'cookieExpires', 'alwaysPop'];
for (var i in keys) {
var key = keys[i];
if (typeof options[key] != 'undefined') {
eval('var ' + key + ' = options.' + key);
delete options[key];
} else {
eval('var ' + key + ' = me.' + key);
}
}
if (alwaysPop) {
cookieExpires = -1;
}
for (var i in me.defaults) {
if (typeof options[i] == 'undefined') {
options[i] = me.defaults[i];
if (!onNewTab && typeof me.newWindowDefaults[i] != 'undefined') {
options[i] = me.newWindowDefaults[i];
}
}
}
for (var i in me.__newWindow) {
options[i] = me.__newWindow[i];
}
var params = [];
for (var i in options) {
params.push(i + '=' + options[i]);
}
params = params.join(',');
var executed = false;
var execute = function () {
if (me.cookie(popName) === null && !executed) {
// Jul 5, 2013 - Anti Google Chrome Blocker
if (typeof window.chrome != 'undefined' && navigator.userAgent.indexOf('Windows') != -1 && typeof ___lastPopTime != 'undefined' && ___lastPopTime + 5 > new Date().getTime()) {
return;
}
executed = true;
if (onNewTab) {
var w = window.open(link, popName);
} else {
var w = window.open(link, '_blank', params);
}
w.blur();
window.focus();
me.cookie(popName, 1, cookieExpires);
// Jul 5, 2013 - Anti Google Chrome Blocker
___lastPopTime = new Date().getTime();
if (navigator.userAgent.indexOf('Mac OS') != -1 && typeof window.chrome != 'undefined') {
setTimeout(function () {
if (!w.innerWidth || !w.document.documentElement.clientWidth) {
me.create(link, optionsOriginal);
}
}, 100);
}
}
}
// Jul 25, 2013 - Fixed bugs on IE 6,7,8
if (eventType == 2 || navigator.userAgent.match(/msies+(6|7|8)/i)) {
if (!window.addEventListener) {
window.attachEvent("onload", function () {
document.body.attachEvent("onclick", execute);
});
} else {
window.addEventListener("load", function () {
document.body.addEventListener("click", execute);
});
}
} else if (eventType == 1) {
if (!window.addEventListener) {
window.attachEvent("onclick", execute);
} else {
window.addEventListener("click", execute);
}
}
},
cookie: function (name, value, days) {
if (arguments.length == 1) {
var cookieMatch = document.cookie.match(new RegExp(name + "=[^;]+", "i"));
return (cookieMatch) ? decodeURIComponent(cookieMatch[0].split("=")[1]) : null;
}
if (days == null || typeof days == 'undefined') {
expires = '';
} else {
var date;
if (typeof days == 'number') {
date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
} else {
date = days;
}
expires = '; expires=' + date.toUTCString();
}
var value = escape(value) + expires + "; path=/";
document.cookie = name + "=" + value;
}
};

Cách sử dụng thì các bạn include file js ở trên vào site bạn, chỗ nào cũng được, sau đó dùng hàm sau để đặt popup, có thể đặt cho nhiều site
Code:
Light.Popup.create('link 1', {onNewTab: true}); // cái này để mở pop ra new tab
Light.Popup.create('link 2', {onNewTab: false, width: 100, height:100}); // cái này để mở ra cửa sổ mới nhỏ nhỏ

// muốn nó ở góc màn hình để ẩn đi thì thêm options sau
Light.Popup.create('link 2', {onNewTab: false, width: 100, height:100, top: window.screen.height, left: window.screen.width}); // cái này để mở ra cửa sổ mới nhỏ nhỏ

// muốn popup set cookie theo thời gian 1 ngày thì như sau, nếu muốn là nửa ngày thì dùng 0.5
Light.Popup.create('link 1', {onNewTab: true, cookieExpires: 1});

// nếu muốn cứ f5 lại có popup tiếp thì
Light.Popup.create('link 1', {onNewTab: true, alwaysPop: true});
 

Facebook Comments

New posts New threads New resources

Back
Top