Skip to content
Yellow Web

Automation and traffic arbitrage

Поиск
English
Русский
Categories
  • Browsers
  • Domains
  • Cloaking
  • Creatives
  • Lend-Prockles
  • Sync by honeybunny
  • Aff. Networks
  • Scripts
  • Tips-Friendly
  • Software
  • Trackers
  • Facebook
  • Finance

Как и где спрятать свой JavaScript

Write a comment / Lend-Prockles, Scripts

В 2023 году я уже wrote про довольно простой, но полезный трюк: если нужно спрятать свой JavaScript от лишних глаз, его можно аккуратно завернуть внутрь какого-нибудь стандартного js-файла. Чаще всего под такую задачу берут jQuery, потому что на лендах и прелендах она встречается сплошь и рядом.

Здесь я решил довести эту историю до ума: показать, куда именно вставлять свой JS, как потом его вызывать, можно ли вставить свой JS не в чужой скрипт, а куда-то ещё (СПОЙЛЕР: да, можно!), и как всю эту возню автоматизировать.

Куда и как вставляем

Принцип тут всегда один и тот же (кэп!):

  1. берём файл, внутрь которого хотим что-то спрятать;
  2. находим стабильную точку вставки = создаём отдельную функцию или метод класса;
  3. добавляем туда свой код;
  4. один раз вызываем нашу функцию/метод изнутри файла.

С jQuery схема получается такой:

  • в jQuery 3.7.1 ищем строку jQuery.isArray = Array.isArray;;
  • в jQuery 4.0.0 ищем строку jQuery.expr[ ":" ] = jQuery.expr.filters = jQuery.expr.pseudos;;
  • добавляем со следующей строки свою функцию;
  • вызов этой функции в обеих версиях лучше ставить перед jQuery.noConflict, после присваивания _$ = window.$;.

Имя функции лучше выбрать нейтральное и техническое, чтобы оно не торчало посреди файла как бельмо на глазу. Например:

jQuery.setColorScheme = function () {
  console.log("Hello World");
};

Дальше эту функцию нужно один раз вызвать изнутри самого jQuery:

var
  _jQuery = window.jQuery,
  _$ = window.$;

jQuery.setColorScheme();

jQuery.noConflict = function( deep ) {

Куда ещё?

Если вы думаете, что свой js-код можно вставить только внутрь другого js, то…. НЕТ! Такую же историю можно провернуть и с файлами формата SVG.

Это гораздо более беспалевный вариант, поскольку редко кто смотрит в содержимое этих самых SVG. Все думают, что это просто такие хитрые картинки.

Чтобы вставить в SVG работающий JavaScript, нужно чуть-чуть схитрить. Тело скрипта необходимо обернуть в CDATA, потому что SVG — это XML: если внутри попадутся <, & и прочие спецсимволы, XML-парсер начнёт видеть в них разметку. Поэтому делаем так:

<script><![CDATA[
  console.log("Hello from SVG");
]]></script>

После того, как скрипт вставлен внутрь SVG, саму «картинку» надо подключить внутрь лендинга тоже не самым обычным способом! Стандартный тег <img> не прокатит! Вместо этого у нас есть следующие вариант: inline SVG, object, embed, iframe. Вот примеры каждого.

Inline SVG

Inline — это тупо вставка всего кода SVG внутрь HTML, типа:

<svg xmlns="http://www.w3.org/2000/svg" width="320" height="160" viewBox="0 0 320 160">
  <rect width="320" height="160" fill="#ffd86b" />
  <script><![CDATA[
    console.log("Hello from inline SVG");
  ]]></script>
</svg>

Если SVG достаточно большой, то засунуть туда небольшой скрипт и пролететь под радарами вполне реально!

Object

<object
  data="/assets/banner.hello-svg.svg"
  type="image/svg+xml"
  width="320"
  height="160">
</object>

Embed

<embed
  src="/assets/banner.hello-svg.svg"
  type="image/svg+xml"
  width="320"
  height="160">

Iframe

<iframe
  src="/assets/banner.hello-svg.svg"
  width="320"
  height="160"
  frameborder="0">
</iframe>

Автоматизация

Чтобы не лезть в jQuery или в SVG руками, я собрал небольшой скрипт: embed-js.js.

У него два режима:

  • --jquery — встраивание payload внутрь jQuery;
  • --svg — встраивание payload внутрь SVG.

Имя выходного файла helper собирает сам из имени исходника и имени payload.

Примеры:

  • jquery-4.0.0.js + ywbackfix.js -> jquery-4.0.0.ywbackfix.js
  • svg-active.svg + hello-svg.js -> svg-active.hello-svg.svg

Пример запуска для jQuery:

node embed-js.js `
  --jquery jquery-4.0.0.js `
  --payload ywbackfix.js `
  --method setColorScheme `
  --minify

Пример для SVG:

node embed-js.js `
  --svg svg-active.svg `
  --payload hello-svg.js

For jQuery helper сам определяет версию библиотеки и сам подбирает нужную точку вставки для 3.7.x or 4.0.x.

Outro

При заимствовании чужих лендингов из спаев помните, что они могут содержать вот такие вот «приятные» подарки. Ну и сами не забывайте добавлять эти подарки в свои ленды для коллег! А у меня на этом всё, на связи был Жёлтый, лейте в плюс, господа!

What to read next

Open the full traffic arbitrage hub →

Check Phone Numbers Worldwide with Google’s Solution How to validate phone numbers worldwide using Google’s tooling when verification quality matters in operational flows. Comebacker Script A simple comebacker script for landing pages and prelanders, plus practical use cases for traffic arbitrage. Countdown Timer Script A simple countdown timer script for landing pages and prelanders, with practical notes on styling and use cases.
← Previous Post
Next Post →

Write a comment Отменить ответ

Your email address will not be published. Require fields marked as *

  • Useful Links
  • Advertisement
  • Rider
  • VK
  • Telegram
  • YouTube
Copyright © 2026 Любое копирование информации без активной ссылки на источник запрещено!