NueForm

تضمين النماذج

كيفية تضمين نماذج NueForm في موقعك الإلكتروني باستخدام iframes وعلامات script والنطاقات المخصصة وتقنيات التحجيم المتجاوب.

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

شاشة ترحيب النموذج
شاشة ترحيب النموذج كما تُعرض للمستجيبين.

البدء السريع: تضمين iframe

أبسط طريقة لتضمين نموذج هي باستخدام <iframe> في HTML:

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 بملء الصفحة

لنموذج يشغل الصفحة بالكامل أو جزءًا كبيرًا منها:

html
<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 مضمّن

لتضمين نموذج ضمن منطقة محتوى (مثل داخل مقال مدونة أو قسم من صفحة هبوط):

html
<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 وتحدد حجمه تلقائيًا:

html
<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 المخصص:

html
<!-- 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:

html
<iframe
  src="https://app.nueform.com/f/your-form-slug"
  width="100%"
  height="600"
  frameborder="0"
  style="border: none;"
></iframe>

ارتفاع قائم على نافذة العرض

يجعل iframe يملأ نافذة عرض المتصفح:

html
<iframe
  src="https://app.nueform.com/f/your-form-slug"
  width="100%"
  frameborder="0"
  style="border: none; height: 100vh;"
></iframe>

حاوية بنسبة عرض إلى ارتفاع

تحافظ على نسبة عرض إلى ارتفاع متسقة عبر أحجام الشاشات:

html
<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 بناءً على حجم الشاشة:

html
<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)، مررها كمعاملات استعلام:

html
<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 لإدراج قيم ديناميكية:

html
<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

jsx
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

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

tsx
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التسجيل (وضع الصوت/الفيديو)
html
<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.

ذو صلة

آخر تحديث: 6 أبريل 2026