التشخيص السريع
قبل تحليل مشاكل محددة، أجرِ فحصاً أساسياً:
- افتح الصفحة التي تحتوي على الودجت.
- اضغط F12 (أو Cmd+Option+I على Mac) ← علامة التبويب Console.
- ابحث عن أخطاء متعلقة بـ
tikento،widget.js،CSPأوCORS. - تحقق من علامة التبويب Network — ابحث عن طلب إلى
tikento.com/widget.jsوتأكد أن الحالة 200.
المشكلة: الودجت لا يُحمَّل إطلاقاً
السبب 1: سياسة أمن المحتوى (CSP) تحظر السكريبت
الأعراض:
- النموذج لا يظهر.
- في وحدة التحكم:
Refused to load the script 'https://tikento.com/widget.js' because it violates the following Content Security Policy directive: "script-src ...".
الحل:
أضف tikento.com إلى توجيه script-src في سياسة CSP الخاصة بك:
script-src 'self' https://tikento.com;
إذا كنت تستخدم وسم meta:
<meta http-equiv="Content-Security-Policy"
content="script-src 'self' https://tikento.com;">
قد تحتاج أيضاً لإضافة connect-src https://tikento.com لطلبات API للودجت وstyle-src 'unsafe-inline' https://tikento.com للأنماط.
السبب 2: eventId غير صحيح
الأعراض:
- السكريبت يُحمَّل (200 في Network)، لكن النموذج لا يُعرض.
- في وحدة التحكم:
[tikento] Event not foundأو[tikento] Invalid eventId format.
الحل:
- افتح الفعالية في لوحة تحكم tikento.
- انتقل إلى علامة التبويب التسجيل ← ودجت للموقع.
- انسخ UUID الصحيح من الحقل أو من كود الودجت الجاهز.
- تأكد أن خاصية
data-tikento-widgetتحتوي على UUID بدون مسافات أو رموز زائدة.
<!-- صحيح -->
<div data-tikento-widget="550e8400-e29b-41d4-a716-446655440000"></div>
<!-- خطأ -->
<div data-tikento-widget="YOUR_EVENT_ID"></div>
السبب 3: السكريبت غير متصل أو متصل مرتين
الأعراض:
- حاوية
divموجودة في الصفحة لكن النموذج لا يظهر. - لا أخطاء في وحدة التحكم، لا طلب لـ
widget.jsفي Network.
الحل:
تأكد أن وسم <script> موجود في الصفحة ويُحمَّل مرة واحدة فقط:
<script src="https://tikento.com/widget.js" async defer></script>
بعض منشئي المواقع (Tilda، Wix) يتطلبون إضافة السكريبتات في كتل خاصة. انظر التثبيت على Tilda، Webflow، Wix.
المشكلة: أخطاء CORS
الأعراض:
- النموذج يبدأ بالتحميل لكن البيانات (الحقول، التذاكر) لا تُحمَّل.
- في وحدة التحكم:
Access to fetch at 'https://tikento.com/api/...' from origin 'https://your-site.com' has been blocked by CORS policy.
الحل:
على خطط Pro وأعلى يجب إضافة نطاق موقعك إلى قائمة المصادر المسموحة:
- في لوحة التحكم: الفعالية ← التسجيل ← الودجت ← النطاقات المسموحة.
- أضف نطاق موقعك (مثلاً
example.comأو*.example.com). - اضغط حفظ.
تسري التغييرات خلال دقيقة (بعد إبطال ذاكرة widget:origins:{eventId} المؤقتة).
على خطة Free لا تُطبَّق قيود CORS — الودجت يعمل على أي نطاق.
لمزيد من التفاصيل — إعداد CORS.
المشكلة: أنماط الودجت مكسورة
خصائص CSS الموروثة
Shadow DOM يعزل معظم الأنماط، لكن بعض خصائص CSS تُورَث عبر حدود Shadow DOM:
font-family،font-size،line-heightcolordirection،text-alignvisibility
إذا كان CSS-reset الخاص بك يضبط قيماً عدوانية على body أو *، فقد يؤثر ذلك على الودجت.
الحل:
اضبط متغيرات CSS للودجت صراحةً لتجاوز القيم الموروثة:
:root {
--tikento-font: 'Inter', sans-serif;
--tikento-text: #18181B;
}
حاوية الودجت مضغوطة أو مخفية
الأعراض:
- الودجت يُعرض بارتفاع 0 أو عرض 0.
- النموذج مقطوع.
الحل:
تحقق أن العنصر الأب لحاوية data-tikento-widget لا يحتوي على:
overflow: hiddenبارتفاع ثابتdisplay: noneأوvisibility: hiddenmax-height: 0أوheight: 0position: fixed/absoluteبدون أبعاد محددة
تحتاج حاوية الودجت عرضاً حراً لا يقل عن 320px.
المشكلة: تُعرض نسخة قديمة من النموذج
الأعراض:
- حدّثت الحقول أو التذاكر في المنشئ، لكن في الودجت على الموقع تظهر النسخة القديمة.
الحل:
- ذاكرة المتصفح المؤقتة. اضغط Ctrl+Shift+R (أو Cmd+Shift+R على Mac) لإعادة تحميل صارمة.
- ذاكرة CDN / الاستضافة المؤقتة. إذا كان موقعك خلف Cloudflare أو CDN مشابه، امسح ذاكرة التخزين المؤقت للصفحة التي تحتوي على الودجت.
- ذاكرة Redis المؤقتة في tikento. تُخزن تكوينات الودجت مؤقتاً بمدة TTL 300 ثانية (5 دقائق). إذا مرت أكثر من 5 دقائق ولم تظهر التغييرات — تواصل مع الدعم.
سكريبت widget.js يُحمَّل مع رأس Cache-Control: no-cache — فهو دائماً محدّث. لكن تكوين النموذج (الحقول، التذاكر، الخيارات) يُخزّن مؤقتاً من جانب tikento.
المشكلة: الودجت لا يعمل في وضع popup
الأعراض:
- الزر مع
data-tikento-popupلا يفتح النموذج عند الضغط.
الحل:
- تأكد أن سكريبت
widget.jsمحمّل في الصفحة. - تحقق أن خاصية
data-tikento-popupتحتوي على UUID صحيح للفعالية. - إذا أُضيف الزر ديناميكياً (عبر إطار عمل JS)، تأكد أنه موجود في DOM عند تهيئة الودجت، أو استدعِ
window.tikento?.refresh()بعد الإضافة.
أخطاء وحدة التحكم: مرجع
| الرسالة | السبب | الإجراء |
|---|---|---|
[tikento] Event not found | eventId غير صحيح أو الفعالية محذوفة | تحقق من UUID |
[tikento] Event not published | الفعالية بحالة draft | انشر الفعالية |
[tikento] Origin not allowed | النطاق ليس في قائمة المسموح (Pro وأعلى) | أضف النطاق في الإعدادات |
[tikento] Widget init failed | خطأ في التهيئة | تحقق من CSP وNetwork |
Refused to load the script... | CSP يحظر | حدّث سياسة CSP |
CORS policy | النطاق غير مسموح | أعدّ CORS |
لا يزال لا يعمل
إذا بقيت المشكلة بعد جميع الفحوصات:
- التقط لقطة شاشة للأخطاء في وحدة التحكم (علامة التبويب Console).
- انسخ عنوان URL للصفحة التي ثُبّت فيها الودجت.
- حدد المتصفح وإصداره.
- أرسل كل ذلك للدعم عبر لوحة التحكم (المساعدة ← اكتب للدعم) أو على support@tikento.com.