Korumalı Alana Sahip JavaScript

Korumalı alana sahip JavaScript, JavaScript dilinin, Google etiketinden rastgele JavaScript mantığı yürütmek için güvenli bir yol sunar Yöneticinin özel şablonları. Güvenli bir yürütme ortamı sağlamak için JavaScript özellikleri kısıtlanır veya kaldırılır. Korumalı alana sahip JavaScript, hakkında daha fazla bilgi edinin. Ok işlevleri ve const/let beyan mevcut.

Global yürütme ortamı

Korumalı alana sahip JavaScript, standart genel yürütmede yürütülmüyor olması nedeniyle window nesnesi ve özellikleri kullanılamıyor. Buna, global kapsamda tanımlanan şu yöntemler de dahildir: encodeURI veya setTimeout, location veya document gibi genel değerler ve Yüklenen komut dosyaları tarafından tanımlanan genel değerler. Bunların yerine, global require işlevi, bu yapılandırmaların birçoğunu sağlayan, korumalı alana alınmış tüm JavaScript'ler işlevlerine dahildir. Değerler, penceredeki açılır menüden copyFromWindow yardımcı programı.

Basitleştirilmiş tür sistemi

Korumalı alana sahip JavaScript şu türleri destekler: null, undefined, string, number, boolean, array, object ve function. Diziler ve nesne değişmez söz dizimi ( [] {} ) kullanılarak oluşturulur ve standart global yürütme ortamına erişim, küresel kurucular ve String() ve Number() kullanılamıyor. Şu konumda new anahtar kelime yok: korumalı alana alınmış JavaScript'tir ve işlevlerin this anahtar kelimesine erişimi yoktur. Bazı yerel tür yöntemleri de kaldırıldı. Şuna ait standart kitaplığa göz atın: Desteklenen yerel türü yöntemlerinin kapsamlı listesi.

Özel şablon kod biçimi

Özel bir şablonu uygulamak için yazılan kod bir her etkinleştiğinde veya değişkeniniz her etkinleştiğinde yürütülecek yardımcı olur. Bu işlevde, tüm parametreleri barındıran tek bir veri parametresi (data) bulunur ilgili etiket veya değişken örneği için kullanıcı arayüzünde yapılandırılan değerler (anahtarlar ayarlandığında) özel şablonda belirtilen şablon parametrelerinin adlarını değiştirin.

Örnek işaretçi etiketi uygulaması

const sendPixel = require('sendPixel');
const encodeUri = require('encodeUri');
const encodeUriComponent = require('encodeUriComponent');

let url = encodeUri(data['url']);

if (data['useCacheBuster']) {
  const encode = require('encodeUriComponent');
  const cacheBusterQueryParam = data['cacheBusterQueryParam'] || 'gtmcb';
  const last = url.charAt(url.length - 1);
  let delimiter = '&';
  if (url.indexOf('?') < 0) {
    delimiter = '?';
  } else if (last == '?' || last == '&') {
    delimiter = '';
  }
  url += delimiter +
      encodeUriComponent(cacheBusterQueryParam) + '=' + encodeUriComponent(data['randomNumber']);
}
sendPixel(url, data['gtmOnSuccess'], data['gtmOnFailure']);