Статистика |
---|
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
билеты
(function(){
//kassirWidget - это неизвестно что, надо определить
if ( false !== !!window.kassirWidget ) {
return;
}
if (undefined === Object.assign) {
Object.assign = function() {
for(var i=1; i '+window.location.origin+'';
this.wrapper.appendChild(text);
} else {
with (btn.style) {
position = "absolute";
right = "-40px";
top = "0";
cursor = "pointer";
}
this.wrapper.appendChild(btn);
}
btn.addEventListener('click', function(){
with(window.kassirWidget){
wrapper.style.display = layer.style.display = 'none';
}
window.kassirWidget.scroll.enable();
});
this.iframe=document.createElement('iframe');
with(this.iframe.style){
width = '100%';
height = '100%';
border = 'none';
background = '#fff';
}
window.addEventListener('resize', this.regenerateIframeHeight.bind(this));
window.addEventListener('message', function(event) {
try {
var url = new URL("/", kassirWidget.widgetParams.url);
if (event.origin === url.origin) { // принимаем сообщения только от нашего виджета
if(event?.data) {
var data = JSON.parse(event?.data)
var eventName = data.event
if (eventName === 'purchase') {
window.dataLayer = window.dataLayer || []
window.dataLayer.push(data)
}
}
} else {
// что-то прислали с неизвестного домена - проигнорируем..
}
} catch (e) {
console.log('ошибка в start-frame.js не смогли обработать сообщение из iframe', e)
}
});
this.iframe.name = 'KWidget';
this.iframe.onload = function () {
var event = new CustomEvent("KWidget.loaded");
document.dispatchEvent(event);
var parsedUrl = window.kassirWidget.parseURL(window.kassirWidget.widgetParams.url);
if (typeof ga !== 'undefined' && typeof ga['getAll'] !== 'undefined') {
ga.getAll().forEach(function (tracker) {
document.getElementsByName('KWidget')[0].contentWindow.postMessage(tracker.get('clientId'), parsedUrl.protocol + '//' + parsedUrl.hostname);
});
}
window.kassirWidget.regenerateIframeHeight.call(window.kassirWidget);
};
this.wrapper.appendChild(this.iframe);
}
,regenerateIframeHeight: function(){
this.iframe.style.height = this.isMobile.any() ? (this.isMobile.y() - 50) + 'px' : '100%';
}
,summon:function(options) {
// apply options
options = options || {};
this.widgetParams = Object.assign({}, this.defaults, options);
if (typeof this.widgetParams.url === 'undefined') {
var event = window.event || arguments.callee.caller.arguments[0],
t = event.currentTarget;
this.widgetParams.url = t.href;
}
//первый запуск
if (null === this.layer) {
this.init();
}
window.kassirWidget.scroll.disable();
document.cookie = ('#' !== this.widgetParams.url)
? "_kassirWidget="+encodeURIComponent(this.widgetParams.url)
: "_kassirWidget=; expires=-1";
this.wrapper.style.display = this.layer.style.display = 'block';
this.iframe.src = this.widgetParams.url
+ "&domain="+window.location.protocol + '//' + window.location.host
+ "&clientID=" + window.kassirWidget.getClientID();
return false;
}
,getClientID :function(){
if (typeof ga !== 'undefined' && typeof ga['getAll'] !== 'undefined' && ga.getAll().length){
return ga.getAll()[0].get('clientId');
}
return '';
}
,parseURL:function(url) {
var parser = document.createElement('a'),
searchObject = {},
queries, split, i;
// Let the browser do the work
parser.href = url;
// Convert query string to object
queries = parser.search.replace(/^\?/, '').split('&');
for( i = 0; i < queries.length; i++ ) {
split = queries[i].split('=');
searchObject[split[0]] = split[1];
}
return {
protocol: parser.protocol,
host: parser.host,
hostname: parser.hostname,
port: parser.port,
pathname: parser.pathname,
search: parser.search,
searchObject: searchObject,
hash: parser.hash
};
}
}
})();
|
|