يمكن تضمين نماذج NueForm مباشرة في أي موقع إلكتروني. يغطي هذا الدليل جميع طرق التضمين، من iframes البسيطة إلى تكاملات النطاقات المخصصة.

البدء السريع: تضمين iframe
أبسط طريقة لتضمين نموذج هي باستخدام <iframe> في HTML:
<iframe
src="https://app.nueform.com/f/your-form-slug"
width="100%"
height="600"
frameborder="0"
allow="camera; microphone"
style="border: none;"
></iframe>
استبدل your-form-slug بمعرّف نموذجك، الذي يمكنك إيجاده في إعدادات النموذج أو عنوان URL العام للنموذج.
طرق التضمين
iframe بملء الصفحة
لنموذج يشغل الصفحة بالكامل أو جزءًا كبيرًا منها:
<iframe
src="https://app.nueform.com/f/your-form-slug"
width="100%"
height="100vh"
frameborder="0"
allow="camera; microphone"
style="border: none; min-height: 100vh;"
></iframe>
هذا يعطي النموذج ارتفاع نافذة العرض الكامل، وهو يعمل جيدًا للنماذج متعددة الخطوات مع انتقالات سلسة.
iframe مضمّن
لتضمين نموذج ضمن منطقة محتوى (مثل داخل مقال مدونة أو قسم من صفحة هبوط):
<div style="max-width: 720px; margin: 0 auto;">
<iframe
src="https://app.nueform.com/f/your-form-slug"
width="100%"
height="500"
frameborder="0"
allow="camera; microphone"
style="border: none; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);"
></iframe>
</div>
تضمين بعلامة Script
لتجربة أكثر تكاملاً، استخدم علامة script تنشئ iframe وتحدد حجمه تلقائيًا:
<div id="nueform-container" data-form="your-form-slug"></div>
<script>
(function() {
var container = document.getElementById('nueform-container');
var slug = container.getAttribute('data-form');
var iframe = document.createElement('iframe');
iframe.src = 'https://app.nueform.com/f/' + slug;
iframe.width = '100%';
iframe.height = '600';
iframe.frameBorder = '0';
iframe.allow = 'camera; microphone';
iframe.style.border = 'none';
container.appendChild(iframe);
})();
</script>
هذا النهج يبقي HTML نظيفًا ويسهّل تبديل النماذج بتغيير سمة data-form.
تضمين بنطاق مخصص
إذا كانت لديك خطة Pro أو Enterprise مع نطاق فرعي أو مخصص مُكوّن، ضمّن النماذج باستخدام عنوان URL المخصص:
<!-- Using a custom subdomain -->
<iframe
src="https://acme.nueform.io/f/your-form-slug"
width="100%"
height="600"
frameborder="0"
style="border: none;"
></iframe>
<!-- Using a fully custom domain -->
<iframe
src="https://forms.acme.com/f/your-form-slug"
width="100%"
height="600"
frameborder="0"
style="border: none;"
></iframe>
تزيل النطاقات المخصصة علامة NueForm التجارية من عنوان URL، مما يمنح المستجيبين تجربة بعلامة بيضاء بالكامل.
راجع النطاقات المخصصة لتعليمات الإعداد.
تحجيم التضمين المتجاوب
ارتفاع ثابت مع التمرير
أبسط نهج. يتم التمرير داخليًا في النموذج إذا كان المحتوى أطول من iframe:
<iframe
src="https://app.nueform.com/f/your-form-slug"
width="100%"
height="600"
frameborder="0"
style="border: none;"
></iframe>
ارتفاع قائم على نافذة العرض
يجعل iframe يملأ نافذة عرض المتصفح:
<iframe
src="https://app.nueform.com/f/your-form-slug"
width="100%"
frameborder="0"
style="border: none; height: 100vh;"
></iframe>
حاوية بنسبة عرض إلى ارتفاع
تحافظ على نسبة عرض إلى ارتفاع متسقة عبر أحجام الشاشات:
<div style="position: relative; width: 100%; padding-bottom: 75%; /* 4:3 ratio */">
<iframe
src="https://app.nueform.com/f/your-form-slug"
frameborder="0"
allow="camera; microphone"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;"
></iframe>
</div>
تضمين متجاوب للهاتف المحمول
استخدم استعلامات وسائط CSS لضبط ارتفاع iframe بناءً على حجم الشاشة:
<style>
.nueform-embed {
width: 100%;
border: none;
height: 700px;
}
@media (max-width: 768px) {
.nueform-embed {
height: 500px;
}
}
@media (max-width: 480px) {
.nueform-embed {
height: 100vh;
min-height: 400px;
}
}
</style>
<iframe
class="nueform-embed"
src="https://app.nueform.com/f/your-form-slug"
frameborder="0"
allow="camera; microphone"
></iframe>
تمرير معاملات URL
يمكنك ملء الحقول المخفية مسبقًا أو تمرير بيانات التتبع إلى النماذج المضمنة عبر معاملات URL. أي معاملات URL في src الخاص بـ iframe تكون متاحة للنموذج كقيم حقول مخفية.
الحقول المخفية
إذا كان نموذجك يحتوي على متغيرات مُكوّنة (مثل utm_source وuser_id)، مررها كمعاملات استعلام:
<iframe
src="https://app.nueform.com/f/your-form-slug?utm_source=website&utm_campaign=spring_sale&user_id=12345"
width="100%"
height="600"
frameborder="0"
style="border: none;"
></iframe>
يتم التقاط هذه القيم في كائن metadata.hiddenFields للاستجابة ويمكن الوصول إليها عبر الواجهة البرمجية وفي تصديرات CSV.
معاملات ديناميكية
استخدم JavaScript لإدراج قيم ديناميكية:
<script>
var formUrl = 'https://app.nueform.com/f/your-form-slug';
var params = new URLSearchParams({
user_id: getUserId(), // Your function
email: getUserEmail(), // Your function
utm_source: getUTMSource(), // Your function
timestamp: Date.now().toString()
});
var iframe = document.createElement('iframe');
iframe.src = formUrl + '?' + params.toString();
iframe.width = '100%';
iframe.height = '600';
iframe.frameBorder = '0';
iframe.style.border = 'none';
document.getElementById('form-container').appendChild(iframe);
</script>
أمثلة خاصة بالإطارات
React
function NueFormEmbed({ slug, params = {} }) {
const queryString = new URLSearchParams(params).toString();
const src = `https://app.nueform.com/f/${slug}${queryString ? '?' + queryString : ''}`;
return (
<iframe
src={src}
width="100%"
height="600"
frameBorder="0"
allow="camera; microphone"
style={{ border: 'none' }}
title="NueForm"
/>
);
}
// Usage
<NueFormEmbed
slug="customer-feedback"
params={{ user_id: '12345', utm_source: 'app' }}
/>
Vue
<template>
<iframe
:src="formSrc"
width="100%"
height="600"
frameborder="0"
allow="camera; microphone"
style="border: none;"
/>
</template>
<script setup>
import { computed } from 'vue';
const props = defineProps({
slug: String,
params: { type: Object, default: () => ({}) }
});
const formSrc = computed(() => {
const query = new URLSearchParams(props.params).toString();
return `https://app.nueform.com/f/${props.slug}${query ? '?' + query : ''}`;
});
</script>
Next.js
export default function FormPage() {
return (
<div className="max-w-3xl mx-auto py-8">
<h1>Contact Us</h1>
<iframe
src="https://app.nueform.com/f/contact-form"
width="100%"
height="600"
frameBorder="0"
allow="camera; microphone"
style={{ border: 'none' }}
title="Contact Form"
/>
</div>
);
}
الأذونات والميزات
تتطلب بعض أنواع أسئلة NueForm أذونات متصفح محددة عند التضمين. استخدم سمة allow على iframe لمنحها:
| الميزة | قيمة allow | أنواع الأسئلة |
|---|---|---|
| الكاميرا | camera | التسجيل (وضع الفيديو) |
| الميكروفون | microphone | التسجيل (وضع الصوت/الفيديو) |
<iframe
src="https://app.nueform.com/f/your-form-slug"
allow="camera; microphone"
...
></iframe>
إذا كان نموذجك لا يستخدم أسئلة التسجيل، فهذه الأذونات غير مطلوبة.
استكشاف الأخطاء وإصلاحها
| المشكلة | الحل |
|---|---|
| النموذج لا يُحمّل في iframe | تحقق من أن النموذج منشور. النماذج غير المنشورة تُرجع 404. |
| النموذج يظهر صغيرًا جدًا أو مقطوعًا | زِد height الخاص بـ iframe أو استخدم height: 100vh. |
| معاملات URL لا تُلتقط | تحقق من أن النموذج يحتوي على متغيرات مُكوّنة بأسماء تطابق مفاتيح المعاملات. |
| المتصفح يحظر iframe | بعض المتصفحات تحظر ملفات تعريف الارتباط الخاصة بالجهات الخارجية. هذا عادة لا يؤثر على عرض النموذج لكن قد يؤثر على تتبع التحليلات. |
| الكاميرا/الميكروفون لا يعملان | أضف allow="camera; microphone" إلى علامة iframe. |
ذو صلة
- النطاقات المخصصة --- إعداد تضمين بنطاق مخصص
- السمات والتنسيق --- تخصيص مظهر النموذج المضمّن
- التصدير إلى React --- للتكامل الأصلي بدون iframes