ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² 1Π‘-ΠΠΈΡΡΠΈΠΊΡ β Π·Π°Π΄Π°ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠ°ΠΉΡΠ°.hether Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Google Analytics, ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ JavaScript-ΠΏΠ»Π°Π³ΠΈΠ½ ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ CSS-ΡΡΠΈΠ»Π΅ΠΉ, Π²Π°ΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ»ΠΎΠΌΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΉΡΠ° ΠΈ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ Π²ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² β ΠΎΡ ΠΏΡΠΎΡΡΡΡ Π΄ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ , Ρ ΡΡΡΡΠΎΠΌ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠΈΡΡΠΈΠΊΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ 1Π‘-ΠΠΈΡΡΠΈΠΊΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°: ΡΠ΅ΡΠ΅Π· Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π½Π°ΠΏΡΡΠΌΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Ρ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°. ΠΡΠ±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π° Π΄Π»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΡΠ°Π²ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈΠΌ ΠΎ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΌ ΠΊΠ΅ΡΠ΅ΠΌ ΠΈΠ»ΠΈ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
1. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ΅ΡΠ΅Π· Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ (Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²)
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ HTML/JS-ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π² Π°Π΄ΠΌΠΈΠ½ΠΏΠ°Π½Π΅Π»ΠΈ 1Π‘-ΠΠΈΡΡΠΈΠΊΡ. ΠΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΠΎΠ²ΡΡ Π²ΡΡΠ°Π²ΠΎΠΊ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ² Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΡΠΎΡΡΠ΅ΡΠ΅ΠΉ. Π§ΡΠΎΠ±Ρ ΠΈΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ:
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π²
ΠΠΎΠ½ΡΠ΅Π½Ρ β Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°ΠΉΡΠ°ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ. - Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ
HTML(ΠΈΠ»ΠΈΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄Π² Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅). - ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π³Π°ΠΌΠΈ
<head>ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΠΌ</body>.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈΠ»ΠΈ ΡΠ±ΡΠΎΡΠ΅ ΠΊΠ΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠΏΠ°ΡΡΡ. ΠΠ»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, jQuery ΠΈΠ»ΠΈ Google Tag Manager) Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ.
2. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠ°ΠΉΡΠ° (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΡΠΏΠΎΡΠΎΠ±)
ΠΠ»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° Π²ΡΠ΅Ρ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
ΡΠ°ΠΉΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. Π 1Π‘-ΠΠΈΡΡΠΈΠΊΡ Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ header.php ΠΈ footer.php, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° (ΠΎΠ±ΡΡΠ½ΠΎ /bitrix/templates/[VAΠ¨_Π¨ΠΠΠΠΠ]/). ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ°Π±Π»ΠΎΠ½Π° Π² ΡΠ²ΠΎΡ ΡΠ΅ΠΌΡ (Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΠΌΡ).
- ΠΡΠΊΡΠΎΠΉΡΠ΅
header.phpΠ΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π²<head>ΠΈΠ»ΠΈfooter.phpΠ΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄</body>. - ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ
Asset::getInstance->addJs(ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΠΈΡΡΠΈΠΊΡ).
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ jQuery ΡΠ΅ΡΠ΅Π· Asset API:
<?php
use Bitrix\Main\Page\Asset;
Asset::getInstance->addJs('https://code.jquery.com/jquery-3.6.0.min.js');
?>
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ! ΠΡΠΈΠ±ΠΊΠ° Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ"Π±Π΅Π»ΠΎΠΌΡ ΡΠΊΡΠ°Π½Ρ" Π½Π° Π²ΡΡΠΌ ΡΠ°ΠΉΡΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Bootstrap) ΡΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠ΄ΡΠ΅ ΠΠΈΡΡΠΈΠΊΡ β ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ β Π¨Π°Π±Π»ΠΎΠ½Ρ β ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°.
βοΈ ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° main.include Π΄Π»Ρ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π³ΡΡΠΏΠΏ), ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ main.include. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
- π ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΡΠ°ΠΉΡΠ°
- π Π£ΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²
- π‘οΈ ΠΠ·Π±Π΅Π³Π°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΌ ΠΊΠ΅ΡΠ΅ΠΌ
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ:
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ
.phpΠ² ΠΏΠ°ΠΏΠΊΠ΅/local/include/(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,custom_scripts.php). - ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ²ΠΎΠΉ JavaScript ΠΈΠ»ΠΈ CSS-ΠΊΠΎΠ΄, ΠΎΠ±ΡΡΠ½ΡΡΡΠΉ Π² PHP-ΡΠ΅Π³ΠΈ.
- Π Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΡΡΠ°Π²ΡΡΠ΅ Π²ΡΠ·ΠΎΠ²:
<?$APPLICATION->IncludeComponent("bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" =>"file",
"PATH" =>"/local/include/custom_scripts.php"
)
);?>
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Facebook Pixel ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΠΈΠ»ΠΈ LiveChat ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ Π΄Π²Π°ΠΆΠ΄Ρ?
ΠΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,"Uncaught Error: Bootstrap's JavaScript requires jQuery"), ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². Π ΠΠΈΡΡΠΈΠΊΡ ΡΡΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΡΠ°Π±Π»ΠΎΠ½ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
4. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Asset API (Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²)
ΠΠ»Ρ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ°ΠΌΡΠΉ Π½Π°Π΄ΡΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Asset API. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
- π ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½Π°ΡΠ°Π»Π° jQuery, ΠΏΠΎΡΠΎΠΌ ΠΏΠ»Π°Π³ΠΈΠ½)
- π¦ Π£ΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
- π ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΎΡ jQuery:
<?php
use Bitrix\Main\Page\Asset;
Asset::getInstance->addJs('/local/js/custom-script.js');
Asset::getInstance->addJs('https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js', true);
// ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ"true" ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠΊΡΠΈΠΏΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΊΠΎΠ½Π΅Ρ <body>
?>
ΠΠ»Ρ CSS-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ addCss. ΠΠ°ΠΆΠ½ΠΎ: Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΡΠ΅ΡΠ΅Π· Asset API Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ executeComponent ΠΈΠ»ΠΈ onPrepareComponentParams, ΠΈΠ½Π°ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΡΡΡΡ.
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ"ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ" Π² Π°Π΄ΠΌΠΈΠ½ΠΏΠ°Π½Π΅Π»ΠΈ ΠΠΈΡΡΠΈΠΊΡ (ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ β ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° β ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ β ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ). ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
5. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· .parameters.php (Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²)
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» .parameters.php. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π°:
- π§ ΠΡΠΆΠ½ΠΎ Π΄Π°ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ/ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ ΡΠ΅ΡΠ΅Π· Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- ποΈ Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ)
ΠΡΠΈΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ .parameters.php:
<?php
$arTemplateParameters = array(
"USE_CUSTOM_SCRIPT" => array(
"NAME" =>"ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ",
"TYPE" =>"CHECKBOX",
"DEFAULT" =>"N",
),
"SCRIPT_ASYNC" => array(
"NAME" =>"ΠΠ°Π³ΡΡΠΆΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ",
"TYPE" =>"CHECKBOX",
"DEFAULT" =>"Y",
"PARENT" =>"USE_CUSTOM_SCRIPT",
)
);
?>
ΠΠ°ΡΠ΅ΠΌ Π² component_epilog.php Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
<?php
if ($arParams["USE_CUSTOM_SCRIPT"] =="Y") {
$async = ($arParams["SCRIPT_ASYNC"] =="Y")?'async="async"':'';
Asset::getInstance->addString(<<<HTML
<script {$async} src="/local/js/custom.js"></script>
HTML
);
}
?>
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² .parameters.php ΡΡΠ΅Π±ΡΡΡ ΠΎΡΠΈΡΡΠΊΠΈ ΠΊΠ΅ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡΡ Π² Π°Π΄ΠΌΠΈΠ½ΠΏΠ°Π½Π΅Π»ΠΈ.
6. Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ°ΠΉΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ β ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ β ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΡ), ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΠΈΡΡΠΈΠΊΡ Π°Π³ΡΠ΅Π³ΠΈΡΡΠ΅Ρ ΠΈ ΠΊΠ΅ΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. Π§ΡΠΎΠ±Ρ Π²Π°ΡΠΈ ΡΠΊΡΠΈΠΏΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π»ΠΈΡΡ:
| ΠΡΠΎΠ±Π»Π΅ΠΌΠ° | Π Π΅ΡΠ΅Π½ΠΈΠ΅ | ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° |
|---|---|---|
| Π‘ΠΊΡΠΈΠΏΡΡ Π½Π΅ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡΡΡ | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ BX.addCustomEvent Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ |
BX.addCustomEvent("onAjaxSuccess", function{ / Π²Π°Ρ ΠΊΠΎΠ΄ / }; |
| ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ Π²Π΅ΡΡΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ | ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΡΠ΅ΡΠ΅Π· Asset::getInstance->addJs Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ |
Asset::getInstance->addJs(..., ['priority' => 100]) |
| CSS Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ | ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Asset::getInstance->addString Ρ ΠΎΠ±ΡΡΡΠΊΠΎΠΉ Π² <style> |
Asset::getInstance->addString('<style>.class { color: red; }</style>') |
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π· ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ, Π° ΠΊΠ°ΠΊΠΈΠ΅ β Π½Π΅Ρ.
Π ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ <script> Π½Π°ΠΏΡΡΠΌΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Asset API ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ΅ΡΠ΅Π· JavaScript-events.
7. Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ
ΠΠ°ΠΆΠ΅ ΠΎΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΠΠΈΡΡΠΈΠΊΡ. ΠΠΎΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- π« ΠΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²: ΠΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π° ΡΠ΅ΡΠ΅Π· ΡΠ°Π±Π»ΠΎΠ½ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΡΠ΅Π·
ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ β Π¨Π°Π±Π»ΠΎΠ½Ρ β ΠΡΠΎΡΠΌΠΎΡΡ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ. - π’ ΠΠ΅Π΄Π»Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°: Π‘ΠΊΡΠΈΠΏΡΡ Π±Π»ΠΎΠΊΠΈΡΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΡΡΠ°Π½ΠΈΡΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ
asyncΠΈΠ»ΠΈdefer, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ <body>. - π ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ Π²Π΅ΡΡΠΈΠΉ: ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²Π΅ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ jQuery. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
BX.loadExtΠ΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΠ· ΡΠ΄ΡΠ° ΠΠΈΡΡΠΈΠΊΡ. - π± ΠΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ : ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π»ΠΈ Π°Π΄Π±Π»ΠΎΠΊΠ΅Ρ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ). Π’Π΅ΡΡΠΈΡΡΠΉΡΠ΅ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ , Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅.
ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ°ΠΉΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅:
- ΠΠΎΠ³ΠΈ PHP (
/bitrix/modules/main/include/prolog_admin_after.php) - ΠΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (F12 β Console)
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ (Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ
644Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ755Π΄Π»Ρ ΠΏΠ°ΠΏΠΎΠΊ)
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ JavaScript Π² ΠΠΈΡΡΠΈΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅"Bitrix Debug Panel" Π΄Π»Ρ Chrome. ΠΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ, ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
FAQ: ΠΡΠ²Π΅ΡΡ Π½Π° ΡΠ°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Google Tag Manager Π² ΠΠΈΡΡΠΈΠΊΡ?
ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Asset API Π² ΡΠ°ΠΉΠ»Π΅ footer.php Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°:
Asset::getInstance->addString('
<!-- Google Tag Manager -->
<script>
(function(w,d,s,l,i){w[l]=w[l]||;w[l].push({"gtm.start":
new Date.getTime,event:"gtm.js"});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!="dataLayer"?"&l="+l:"";j.async=true;j.src=
"https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,"script","dataLayer","GTM-XXXXXX");
</script>
<!-- End Google Tag Manager -->
', true);
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ GTM-XXXXXX Π½Π° Π²Π°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ.
ΠΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠΉ ΡΠΊΡΠΈΠΏΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅?
Π ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΠΈΡΡΠΈΠΊΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
BX.ready(function {
// ΠΠ°Ρ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
BX.ajax.runComponentAction('namespace:component','action', {
data: { key:'value' }
}).then(function(response) {
console.log(response.data);
});
});
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅:
<?php
if ($APPLICATION->GetCurPage(false) === SITE_DIR) {
Asset::getInstance->addJs('/local/js/mainpage-only.js');
}
?>
ΠΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ main.include Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ ΠΈΠ· CDN?
ΠΠ°, Π½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Asset::getInstance->addJsΡ ΠΏΠΎΠ»Π½ΡΠΌ URL. - ΠΠΎΠ±Π°Π²Π»ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΠ»Π»Π±Π΅ΠΊ Π½Π° ΡΠ»ΡΡΠ°ΠΉ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ CDN:
<script src="https://cdn.example.com/script.js"></script>
<script>
if (!window.YourLibrary) {
document.write('<script src="/local/js/fallback.js"><\/script>');
}
</script>
ΠΠ°ΠΊ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ jQuery Π² ΠΠΈΡΡΠΈΠΊΡ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ?
ΠΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ jQuery ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· init.php:
<?php
$GLOBALS['APPLICATION']->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/no-jquery.css', true);
$GLOBALS['APPLICATION']->AddHeadScript(SITE_TEMPLATE_PATH.'/js/jquery-3.6.0.min.js');
?>
ΠΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΠΈΡΡΠΈΠΊΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ jQuery 1.12.4. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΏΠ°Π½Π΅Π»ΠΈ.