Rumah > hujung hadapan web > tutorial js > Benamkan Widget JS dengan Lancar dengan Rails: Panduan Langkah demi Langkah

Benamkan Widget JS dengan Lancar dengan Rails: Panduan Langkah demi Langkah

Linda Hamilton
Lepaskan: 2024-11-08 04:45:01
asal
414 orang telah melayarinya

Embed JS Widgets Smoothly with Rails: A Step-by-Step Guide

Membuat widget JavaScript tersuai yang boleh dibenamkan dalam tapak web pelanggan ialah cara yang berkesan untuk meluaskan jangkauan aplikasi Ruby on Rails anda. Sama ada kotak sembang, penjejak analitik atau mana-mana elemen interaktif lain, widget tersuai membolehkan anda membawa fungsi terus kepada pengguna. Mari kita ikuti langkah membina widget yang selamat dan boleh dibenamkan dan merangkumi amalan terbaik.

Jadual Kandungan

 1. Langkah 1: Persediaan
 2. Langkah 2: Mencipta Kod Benam untuk Pelanggan
 3. Langkah 3: Membenamkan Widget Anda dalam Iframe (Pilihan)
 4. Langkah 4: Menetapkan Pengepala untuk Iframe Embedding
 5. Langkah 5: Uji Widget
 6. Langkah 6: Menambah Sokongan Versi dengan Laluan dan Pengawal Versi

Langkah 1: Persediaan

Buat titik akhir Rails baharu: Titik akhir ini akan menyediakan kod JavaScript untuk widget anda. Biasanya, ini boleh menjadi tindakan dalam WidgetsController:

# app/controllers/widgets_controller.rb
class WidgetsController < ApplicationController
  def show
    # Your widget code here
  end
end
Salin selepas log masuk
Salin selepas log masuk

Konfigurasikan Laluan: Sediakan laluan untuk menjadikan widget boleh diakses.

# config/routes.rb
Rails.application.routes.draw do
  get '/widget.js', to: 'widgets#show', as: :widget
end
Salin selepas log masuk
Salin selepas log masuk

Layankan JavaScript daripada Pengawal: Dalam Rails, anda boleh bertindak balas dengan JavaScript dengan menetapkan jenis kandungan yang sesuai.

# app/controllers/widgets_controller.rb
class WidgetsController < ApplicationController
  def show
    response.headers['Content-Type'] = 'application/javascript'
    render layout: false
  end
end
Salin selepas log masuk
Salin selepas log masuk

Tulis Kod JavaScript untuk Widget Anda: Skrip widget biasanya termasuk logik untuk memaparkan elemen HTML tersuai atau iframe pada halaman klien.

// app/views/widgets/show.js.erb
(function() {
  const widgetDiv = document.createElement('div');
  widgetDiv.id = 'custom-widget';
  widgetDiv.innerHTML = "<p>This is your custom widget content!</p>";
  document.body.appendChild(widgetDiv);
})();
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Mencipta Kod Benam untuk Pelanggan

Untuk membolehkan pelanggan membenamkan widget anda, sediakan coretan JavaScript yang boleh mereka salin dan tampal ke dalam HTML mereka:

<!-- Client Embeddable Code -->
<script type="text/javascript">
  (function() {
    const script = document.createElement('script');
    script.src = "https://yourapp.com/widget.js";
    script.async = true;
    document.head.appendChild(script);
  })();
</script>
Salin selepas log masuk
Salin selepas log masuk

Langkah 3: Membenamkan Widget Anda dalam Iframe (Pilihan)

Pertimbangkan untuk membenamkan kandungan widget dalam iframe untuk lebih pengasingan dan kawalan ke atas penggayaan. Pendekatan ini memastikan penggayaan dan tingkah laku widget berasingan daripada tapak pelanggan.

Kemas kini Kod JavaScript untuk membuat iframe untuk widget:

// app/views/widgets/show.js.erb
(function() {
  const iframe = document.createElement('iframe');
  iframe.src = "<%= widget_content_url %>";
  iframe.style.width = "300px";
  iframe.style.height = "200px";
  document.body.appendChild(iframe);
})();
Salin selepas log masuk
Salin selepas log masuk

Tentukan Laluan dan Paparan Baharu untuk Kandungan Widget:

# config/routes.rb
Rails.application.routes.draw do
  get '/widget_content', to: 'widgets#content', as: :widget_content
end
Salin selepas log masuk
# app/controllers/widgets_controller.rb
def content
  render layout: false
end
Salin selepas log masuk

Cipta HTML Kandungan Widget: Cipta paparan untuk dipaparkan di dalam iframe

<!-- app/views/widgets/content.html.erb -->
<div>



<h2>
  
  
  Step 4: Setting Headers for Iframe Embedding
</h2>

<p>Configure the appropriate HTTP headers to ensure your widget works securely in an iframe. There are two primary headers to consider:</p>

<p><strong>Remove the X-Frame-Options Header</strong>: The X-Frame-Options header is deprecated but still widely respected by many browsers. To remove it, add the following configuration in an initializer:<br>
</p>

<pre class="brush:php;toolbar:false"># config/initializers/security_headers.rb
Rails.application.config.action_dispatch.default_headers.delete('X-Frame-Options')
Salin selepas log masuk

Tetapkan Arahan Frame-Ancestors:Pendekatan moden dan lebih fleksibel ialah menggunakan Content-Security-Policy dengan arahan frame-ancestors, yang membolehkan anda menentukan domain yang dibenarkan untuk membenamkan widget anda dalam iframe. Laraskan pengepala ini mengikut keperluan berdasarkan keperluan keselamatan anda.

# config/initializers/security_headers.rb
Rails.application.config.action_dispatch.default_headers.merge!({
  'Content-Security-Policy' => "frame-ancestors 'self' https://trusted-domain.com"
})
Salin selepas log masuk

Konfigurasi ini membenarkan apl anda dibenamkan dalam iframe hanya oleh domain yang ditentukan. Gantikan https://trusted-domain.com dengan domain sebenar yang anda percayai.

Langkah 5: Uji Widget

Setelah anda menyediakan widget dan pengepala, uji widget dengan membenamkannya pada halaman ujian dalam pelbagai penyemak imbas untuk memastikan keserasian. Jika anda telah menggunakan moyang bingkai, sahkan bahawa hanya domain yang ditentukan boleh membenamkan widget anda dan widget itu dipaparkan seperti yang diharapkan.

Langkah 6: Menambah Sokongan Versi dengan Laluan dan Pengawal Versi

Apabila widget anda berkembang, anda mungkin memperkenalkan ciri atau penambahbaikan baharu yang tidak semua pelanggan bersedia untuk menerima pakai serta-merta. Menyokong berbilang versi widget anda memastikan keserasian ke belakang, membolehkan pelanggan menaik taraf mengikut kadar mereka sendiri tanpa mengganggu integrasi sedia ada mereka.

Melaksanakan Sokongan Versi Menggunakan Laluan dan Pengawal Versi

Tentukan Laluan Versi

Mulakan dengan menyediakan laluan berasingan untuk setiap versi widget anda. Jarak nama setiap versi memastikan kod anda teratur dan membolehkan anda mengurus versi berbeza secara bebas.

# app/controllers/widgets_controller.rb
class WidgetsController < ApplicationController
  def show
    # Your widget code here
  end
end
Salin selepas log masuk
Salin selepas log masuk

Buat Pengawal Versi

Untuk setiap versi, buat pengawal dalam ruang namanya. Pemisahan ini memastikan bahawa perubahan dalam satu versi tidak menjejaskan yang lain.

# config/routes.rb
Rails.application.routes.draw do
  get '/widget.js', to: 'widgets#show', as: :widget
end
Salin selepas log masuk
Salin selepas log masuk
# app/controllers/widgets_controller.rb
class WidgetsController < ApplicationController
  def show
    response.headers['Content-Type'] = 'application/javascript'
    render layout: false
  end
end
Salin selepas log masuk
Salin selepas log masuk

Buat Paparan JavaScript dan HTML Khusus Versi

Setiap versi boleh mempunyai fail JavaScript dan HTML sendiri, membolehkan anda menyesuaikan fungsi dan penampilan setiap versi.

JavaScript Versi 1:

// app/views/widgets/show.js.erb
(function() {
  const widgetDiv = document.createElement('div');
  widgetDiv.id = 'custom-widget';
  widgetDiv.innerHTML = "<p>This is your custom widget content!</p>";
  document.body.appendChild(widgetDiv);
})();
Salin selepas log masuk
Salin selepas log masuk

Versi 1 Kandungan:

<!-- Client Embeddable Code -->
<script type="text/javascript">
  (function() {
    const script = document.createElement('script');
    script.src = "https://yourapp.com/widget.js";
    script.async = true;
    document.head.appendChild(script);
  })();
</script>
Salin selepas log masuk
Salin selepas log masuk

Kandungan Versi 2:

// app/views/widgets/show.js.erb
(function() {
  const iframe = document.createElement('iframe');
  iframe.src = "<%= widget_content_url %>";
  iframe.style.width = "300px";
  iframe.style.height = "200px";
  document.body.appendChild(iframe);
})();
Salin selepas log masuk
Salin selepas log masuk

Fikiran Akhir

Mencipta widget boleh terbenam untuk aplikasi Rails melibatkan beberapa pertimbangan utama: menyediakan JavaScript dengan selamat, mengurus gaya dan mengkonfigurasi pengepala dengan betul untuk keserasian iframe. Dengan mengikuti langkah di atas, anda akan mempunyai widget yang boleh ditambahkan oleh pelanggan pada tapak mereka dengan mudah, mengembangkan kebolehgunaan aplikasi Rails anda.

Atas ialah kandungan terperinci Benamkan Widget JS dengan Lancar dengan Rails: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan