forked from mtxr/vscode-sqltools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
119 lines (113 loc) · 3.5 KB
/
Copy pathscript.js
File metadata and controls
119 lines (113 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
(function(w, adTagId, dl) {
var CODEFUND = 1
var CARBON = 2
function setProvider(provider) {
w['__adprovider'] = typeof provider === 'number' && [CODEFUND, CARBON].indexOf(provider) !== -1 ? provider : CODEFUND;
log('set provider', w['__adprovider'])
}
function log() {
if (!window.localStorage || !localStorage.getItem('ad_debug')) return
console.log.apply(console.log, [].concat.apply([''], arguments))
}
function reg() {
dl.push({
event: 'ad-render',
adProvider: w['__adprovider']
})
}
setProvider(typeof w['__adprovider'] !== 'undefined' ? w['__adprovider'] : CODEFUND)
var prevHref = ''
function loadScript(src, id, position) {
var script = document.createElement('script')
script.setAttribute('async', '')
script.type = 'text/javascript'
script.src = src
script.id = id
position.appendChild(script)
return script
}
function getTagEl(tag, appendTo) {
var el = document.getElementById(adTagId)
if (el) return el;
el = (document.getElementById(adTagId) || document.createElement(tag || 'div'))
el.id = adTagId;
(appendTo || document.body).appendChild(el);
return el
}
function clearTag(selector) {
var nodes = document.querySelectorAll(selector)
for(var i = 0; i < nodes.length; i++) {
nodes[i].innerHTML = ''
}
}
function renderCodefund() {
try {
log('render Codefund')
var script = document.getElementById('codefund-src')
if (script) script.remove()
getTagEl().style.opacity = '0';
loadScript('https://app.codefund.io/properties/684/funder.js?target=' + adTagId, 'codefund-src', document.body)
}
catch (error) {log(error);}
}
function renderCarbon() {
try {
log('render Carbon')
var el = getTagEl()
el.removeAttribute('style')
loadScript('//cdn.carbonads.com/carbon.js?serve=CE7ITK3L&placement=vscode-sqltoolsmteixeiradev', '_carbonads_js', el)
reg()
} catch (error) {log(error);}
}
function renderAd() {
clearTag('#' + adTagId)
prevHref = location.href
if (w['__adprovider'] === CARBON) return renderCarbon()
renderCodefund()
}
var locationTimeout
function pageChanged(event) {
var l = (event.detail || w).location
if (prevHref && l.href === prevHref) return
log('location changed')
clearTimeout(locationTimeout)
setTimeout(renderAd, 50)
}
var prevOnLoad = w.onload
w.addEventListener('codefund', function(evt) {
log('codefund', evt['detail'])
var status = evt['detail'].status;
var inHouse = evt['detail'].house;
if (status !== 'ok') {
setProvider(CARBON);
return setTimeout(renderAd, 50);
}
if (!inHouse) {
getTagEl().removeAttribute('style')
return reg()
};
if (Math.random() > 0.7) {
setProvider(CARBON);
return setTimeout(renderAd, 50);
}
getTagEl().removeAttribute('style')
return reg()
});
w.onload = function() {
log('window loaded')
setProvider(Math.random() <= 0.7 ? CODEFUND : CARBON)
w.addEventListener('pagechanged', pageChanged)
pageChanged(w)
prevOnLoad && prevOnLoad.apply(w, arguments)
setTimeout(function() {
if (!location.hash) return
var el = document.getElementById(location.hash.substr(1))
if (!el) return
try {
el.scrollIntoView({ behavior: 'smooth' })
} catch (error) {
document.querySelector('[class^=Page__Wrapper]').scrollTop = el.offsetTop
}
}, 300)
}
})(window, 'btfixedad', window['dataLayer']);