এইচটিএমএল ফাইলে অন্য একটি HTML ফাইল অন্তর্ভুক্ত করুন


624

আমার কাছে 2 টি এইচটিএমএল ফাইল রয়েছে, ধরুন a.htmlএবংb.html । ইন a.htmlআমি অন্তর্ভুক্ত করতে চান b.html

জেএসএফ-এ আমি এটি এর মতো করতে পারি:

<ui:include src="b.xhtml" />

এর অর্থ হচ্ছে ভিতরে a.xhtml ফাইলের আমি অন্তর্ভুক্ত করতে পারি b.xhtml

আমরা কীভাবে *.htmlফাইলটিতে এটি করতে পারি ?



32
না! এটি 2 ভিন্ন জিনিস!
ললো 10

এর সাথে সম্পর্কিত, কিন্তু জন্য localhost: stackoverflow.com/questions/7542872/...
cregox

<অবজেক্ট টাইপ = "টেক্সট / এইচটিএমএল" ডেটা = "বি.এক্সএইচটিএমএল"> </
ob>>

উত্তর:


685

আমার মতে সেরা সমাধান jQuery ব্যবহার করে:

a.html:

<html> 
  <head> 
    <script src="jquery.js"></script> 
    <script> 
    $(function(){
      $("#includedContent").load("b.html"); 
    });
    </script> 
  </head> 

  <body> 
     <div id="includedContent"></div>
  </body> 
</html>

b.html:

<p>This is my include file</p>

এই পদ্ধতিটি আমার সমস্যার একটি সহজ এবং পরিষ্কার সমাধান।

JQuery .load()ডকুমেন্টেশন এখানে


5
কেবল এই `<script> $ (" # অন্তর্ভুক্তকন্টেন্ট ") করার কি পার্থক্য? লোড (" b.html "); </script>?
রডরিগো রুইজ

10
$(function(){})ডকুমেন্টটি লোডিং শেষ হওয়ার পরে কেবলমাত্র রডরিগোরুইজ কার্যকর করবে।
প্রফেক

8
যদি অন্তর্ভুক্ত এইচটিএমএল ফাইলের সাথে সিএসএস সংযুক্ত থাকে তবে এটি আপনার পৃষ্ঠা শৈলীতে বিশৃঙ্খলা সৃষ্টি করতে পারে।
ওমর জাফফর

6
আমি ঠিক যেমন আপনি উল্লেখ করেছেন। আমি বুটস্ট্র্যাপ ব্যবহার করছি এবং বিএসএইচটিএমএল এর জন্য সিএসএস ওভাররাইট লিখছি। আমি যখন এএইচটিএমএল এ বিএইচটিএমএল ব্যবহার করি যাতে এটি এএইচটিএমএলের শিরোনাম হিসাবে শেষ হয়, আমি দেখতে পাচ্ছি যে CSS এর অগ্রাধিকার হারিয়েছে এবং তার একটি আলাদা বিন্যাস রয়েছে। এর কোন সমাধান ?.
পবন দিত্তকবি

36
এটির জন্য একটি সার্ভার দরকার । স্থানীয় ফাইলে এটি ব্যবহার করার সময়:XMLHttpRequest cannot load file:///.../b.html. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
বাস্জ

154

উপরে থেকে লোলোর উত্তরটি প্রসারিত করা, যদি আপনাকে প্রচুর ফাইল অন্তর্ভুক্ত করতে হয় তবে এখানে আরও কিছু অটোমেশন রয়েছে:

<script>
  $(function(){
    var includes = $('[data-include]');
    jQuery.each(includes, function(){
      var file = 'views/' + $(this).data('include') + '.html';
      $(this).load(file);
    });
  });
</script>

এবং তারপরে এইচটিএমএলে কিছু অন্তর্ভুক্ত করতে:

<div data-include="header"></div>
<div data-include="footer"></div>

যার মধ্যে ফাইলের দর্শন / শিরোনাম html এবং দর্শনগুলি / পাদদেশের html অন্তর্ভুক্ত থাকবে


খুব দরকারী. data-argumentঅন্তর্ভুক্ত ফাইলটিতে এটি পছন্দ করে এবং পুনরুদ্ধার করার জন্য অন্য ডেটা প্যারামিটারের মাধ্যমে কোনও আর্গুমেন্ট পাস করার কোনও উপায় আছে কি ?
খ্রিস্ট

@ ক্রিস আপনি জিইটি প্যারামগুলি ব্যবহার করতে পারেন উদাহরণস্বরূপ$("#postdiv").load('posts.php?name=Test&age=25');
নাম জি ভিইউ

5
ছোট পরামর্শ - আপনার দরকার নেই class="include"- কেবল আপনার jQuery সিলেক্টর করুনvar includes = $('[data-include]');
jbyrd

স্থানীয় ফাইলগুলির সাথে ক্রোমে কাজ করা হচ্ছে না "ক্রস অরিজিন অনুরোধগুলি কেবল প্রোটোকল স্কিমগুলির জন্য সমর্থিত: htt"
আর্টেম বারনাটস্কি

2
@ আর্টেমবার্নটস্কিই যখন আপনি তার পরিবর্তে একটি স্থানীয় সার্ভার চালান তখন এটি কী সহায়তা করে? এখানে একটি সহজ টিউটোরিয়ালটি রয়েছে: ডেভেলপার.মোজিলা.আর.ইন-
ইউএস

145

আমার সমাধান উপরের লোলোর একটির মতো । যাইহোক, আমি জাভাস্ক্রিপ্টের ডকুমেন্টের মাধ্যমে এইচটিএমএল কোডটি প্রবেশ করিয়েছি j

a.html:

<html> 
  <body>
  <h1>Put your HTML content before insertion of b.js.</h1>
      ...

  <script src="b.js"></script>

      ...

  <p>And whatever content you want afterwards.</p>
  </body>
</html>

b.js:

document.write('\
\
    <h1>Add your HTML code here</h1>\
\
     <p>Notice however, that you have to escape LF's with a '\', just like\
        demonstrated in this code listing.\
    </p>\
\
');

JQuery ব্যবহারের বিরুদ্ধে আমার কারণ হ'ল jQuery.js আকার size 90kb এবং আমি যতটা সম্ভব ডেটা পরিমাণ লোড করতে রাখতে চাই।

খুব বেশি কাজ না করে সঠিকভাবে পালানো জাভাস্ক্রিপ্ট ফাইলটি পেতে, আপনি নীচের সিড কমান্ডটি ব্যবহার করতে পারেন:

sed 's/\\/\\\\/g;s/^.*$/&\\/g;s/'\''/\\'\''/g' b.html > escapedB.html

বা গিথুবকে গিস্ট হিসাবে প্রকাশিত নিম্নলিখিত হ্যান্ড ব্যাশ স্ক্রিপ্টটি ব্যবহার করুন, যা রূপান্তর b.htmlকরে সমস্ত প্রয়োজনীয় কাজ স্বয়ংক্রিয় করে তোলে b.js: https://gist.github.com/Tafkadasoh/334881e18cbb7fc2a5c033bfa03f6ee6

গ্রেগ মিনশালকে উন্নত সেড কমান্ডের জন্য ক্রেডিট যা পিছনে স্ল্যাশ এবং একক উদ্ধৃতি থেকেও রেহাই পায়, যা আমার আসল সেড কমান্ড বিবেচনা করে না।

বিকল্পভাবে ব্রাউজারগুলির জন্য যা টেম্পলেট আক্ষরিক সমর্থন করে নিম্নলিখিতগুলির জন্যও:

b.js:

document.write(`

    <h1>Add your HTML code here</h1>

     <p>Notice, you do not have to escape LF's with a '\',
        like demonstrated in the above code listing.
    </p>

`);

4
@ ট্র্যাভের হিক্কি হ্যাঁ, আপনি ঠিক বলেছেন, এটি আমার সমাধানের অপূর্ণতা এবং এটি খুব মার্জিত নয়। তবে, আপনি প্রতিটি লাইনের শেষে একটি সাধারণ রেজেক্স সহ একটি '\' সন্নিবেশ করতে পারেন, এটি আমার পক্ষে সবচেয়ে ভাল কাজ করে। হুম ... সম্ভবত আমার উত্তরে যুক্ত করা উচিত কীভাবে
রেজেনেক্সের

2
ওহে শীশ, ওটা কুৎসিত - ধন্যবাদ নেই আমি বরং আমার এইচটিএমএলকে এইচটিএমএল হিসাবে লিখি। আমি কমান্ড লাইনে সেড ব্যবহার করতে পারি কিনা সে বিষয়ে আমার চিন্তা নেই - প্রতিবার আমি যখন টেমপ্লেটের বিষয়বস্তুগুলি পরিবর্তন করি তখন তার উপর নির্ভর করতে চাই না।
jbyrd

1
@ গুড্রা এটির কোনও 'চিহ্ন ছাড়াই কোনও HTML এ কাজ করা উচিত । আপনি শুধুমাত্র একটি খুঁজে না যদি / প্রতিস্থাপন প্রতিস্থাপন ` with \ `তারপরে খুঁজুন / প্রতিস্থাপন প্রতিস্থাপন 'সঙ্গে \'` নতুন লাইন ঠিক কাজ করবে এবং নতুন লাইন।
wizzwizz4

1
@ উইজউইজ ৪৪: গ্রেগকে ধন্যবাদ, সেড কমান্ড এখন একক উদ্ধৃতি এবং ব্যাকস্ল্যাশ থেকেও রেহাই পেয়েছে। তদুপরি, আমি একটি বাশ স্ক্রিপ্ট যুক্ত করেছি যা আপনার জন্য সমস্ত কাজ করে। :-)
তাফকদাসোহ

1
আপনি ব্যাকটিক্স ব্যবহার করতে পারেন ` - তারপরে আপনি এই জাতীয় মত প্রকাশ করতে সক্ষম হবেন ${var}- আপনাকে কেবল তখন পালাতে হবে \`এবং\$
অনিচ্ছাকৃত

85

এইচটিএমএল 5 রকস টিউটোরিয়াল এবং পলিমার-প্রকল্পের মাধ্যমে চেকআউট এইচটিএমএল 5 আমদানি করে

উদাহরণ স্বরূপ:

<head>
  <link rel="import" href="/path/to/imports/stuff.html">
</head>

27
এইচটিএমএল আমদানিগুলি আসলে পৃষ্ঠাতে সামগ্রীটি অন্তর্ভুক্ত করার উদ্দেশ্যে নয়। এই উত্তরের কোডটি কেবল প্যারেন্ট পৃষ্ঠার মধ্যে একটি টেম্পলেট হিসাবেstuff.html উপলভ্য করে তবে আপনাকে স্ক্রিপ্টিংটি প্যারেন্ট পৃষ্ঠায় এর ডিওএমের ক্লোন তৈরি করতে ব্যবহার করতে হবে যাতে তারা ব্যবহারকারীর কাছে দৃশ্যমান হয়।
ওয়ালডিরিয়াস

1
একটি এইচটিএমএল পৃষ্ঠার বিষয়বস্তু অন্যটিতে forোকানোর জন্য এইচটিএমএল 5 আরকস.কমের নির্দেশাবলী এখনও ব্রাউজারে প্রচুর পরিমাণে কাজ করছে বলে মনে হয় না। আমি এটি অপেরা 12.16 এবং সুপারবার্ড সংস্করণ 32.0.1700.7 (233448) এ প্রভাব ছাড়াই (Xubuntu 15.04 এ) চেষ্টা করেছি। আমি শুনেছি এটি ফায়ারফক্সে কাজ করে না (আশা করা যায় যে কোনও বাগের কারণে আশা করা যায়) বা Chrome এর প্রচুর সংস্করণ রয়েছে। সুতরাং, দেখে মনে হচ্ছে এটি ভবিষ্যতে এটি একটি আদর্শ সমাধান হতে পারে, এটি কোনও ক্রস-ব্রাউজার সমাধান নয়।
ব্রাৎসায়র্ফুজথ্রিক্স

1
ফায়ারফক্স (45.5.1 ইএসআর) এর শেষ পর্যন্ত ২০১ 2016 সালের দিকে দৃশ্যত প্রস্তুত নয়। জাতীয় কনসোল বলেছেন: TypeError: ... .import is undefinedএমডিএন বলছে "এই বৈশিষ্ট্যটি এই মুহুর্তে কোনও ব্রাউজারে স্থানীয়ভাবে প্রয়োগ করা হয়নি" " এই বৈশিষ্ট্যটি দিয়ে এফএফ তৈরি করা সম্ভব কিনা তা কি কেউ জানেন?
sphakka

3
ফায়ারফক্স এটি সমর্থন করবে না। এটি সক্ষম করতে "dom.webcompferences.enabled" সেট করার চেষ্টা করুন। এটি শুধুমাত্র ক্রোম এবং অপেরা, আপডেটেড ওয়েব ভিউ (অ্যান্ড্রয়েড ৪.৪.৩) সহ অ্যান্ড্রয়েডে কাজ করবে। অ্যাপল ব্রাউজারগুলি এটি সমর্থন করে না। এটি ওয়েব-উপাদানগুলির জন্য দুর্দান্ত ধারণা হিসাবে দেখায় তবে এখনও কার্যকর হয় নি।
ম্যাক্সিম

9
2018 এর শেষের দিকে আপডেট করুন: এইচটিএমএল আমদানি দৃশ্যত কোনও কারণে
প্রত্যাখ্যান করা

60

একটি লাইব্রেরির নির্লজ্জ প্লাগ যা আমি সমাধানটি লিখেছি।

https://github.com/LexmarkWeb/csi.js

<div data-include="/path/to/include.html"></div>

উপরের বিষয়বস্তুগুলি নেবে /path/to/include.htmlএবং এর divসাথে এটি প্রতিস্থাপন করবে।


4
অন্তর্ভুক্ত। Html এটি এমবেড করা থাকলে এটি কি জাভাস্ক্রিপ্টের মূল্যায়ন করবে?
শেঠ

1
@ এটি মনে হচ্ছে না। আমি এসআরসি নিয়ে চারপাশে খেলতে যাচ্ছি এবং আমি এটি করতে পারি কিনা তা দেখুন। মাইকেল-
মারকে

2
উজ্জ্বল !!!! আপনার কেবলমাত্র সলিউশনটি মনে হয় যা সন্নিবেশ করানোর জন্য টোকেন হিসাবে ব্যবহৃত ডিভ ট্যাগটিকে প্রতিস্থাপন করে। আমি পরে সাবধানে অধ্যয়ন করবো !! :-)
কেপললক

1
ধন্যবাদ এটি কাজ করে, এতে HTML / CSS অন্তর্ভুক্ত রয়েছে তবে উত্স ফাইলগুলি থেকে জাভাস্ক্রিপ্ট নেই। আপনি যেখানেই এটি ব্যবহার করেন কেবল আপনাকে এটি আবার অন্তর্ভুক্ত করতে হবে <div data-include="/path/to/include.html"></div>। এই সরঞ্জামটি একটি সহজ উপায়ে কোনও সাধারণ প্লাগ-ইন মাল্টিপেজ মকআপ করা সহজ করে তোলে।
ভিনসেন্ট তাং

1
আমি কি এই অ্যাপ্লিকেশনটি কোনও অ্যাপ্লিকেশনটিতে ব্যবহার করতে পারি? মানে লেখককে ক্রেডিট করতে পারবেন কীভাবে? ডাব্লু 3স্কুলের অনুরূপ সমাধান রয়েছে, কেবলমাত্র এটির
সাথেই

43

একটি সাধারণ সার্ভার সাইডে একই ফোল্ডারে পাওয়া অন্য ফাইলটি অন্তর্ভুক্ত করার নির্দেশকে অন্তর্ভুক্ত করে:

<!--#include virtual="a.html" --> 

21
আপনার এসএসআই ব্যবহারের জন্য আপনার সার্ভারটি কনফিগার করতে হবে
lolo

7
আপনার সার্ভারের জন্য এসএসআই কনফিগার করার জন্য এখানে একটি উল্লেখ রয়েছে: httpd.apache.org/docs/2.4/howto/ssi.html#configuring
shasi kanth

<!--#include file="a.html" -->পাশাপাশি চেষ্টা করার মতো হতে পারে
জিমিযুদাস

এসএসআই অন্তর্ভুক্তি ওয়েব-সার্ভারকে এক ধীরে ধীরে ধীরে ধীরে পরিণত করে (তাই নিখুঁত প্রয়োজনীয়তা হওয়া পর্যন্ত এড়ানো উচিত)।
অমিত ভার্মা

36

স্ক্রিপ্টের দরকার নেই। কোনও অভিনব স্টাফ সার্ভার-সাইড করার দরকার নেই (এটি সম্ভবত আরও ভাল বিকল্প হতে পারে)

<iframe src="/path/to/file.html" seamless></iframe>

পুরানো ব্রাউজারগুলি যেহেতু বিজোড় সমর্থন করে না, তাই এটি ঠিক করার জন্য আপনার কিছু সিএসএস যুক্ত করা উচিত:

iframe[seamless] {
    border: none;
}

মনে রাখবেন যে ব্রাউজারগুলি বিজোড় সমর্থন করে না, আপনি যদি ইফ্রেমে কোনও লিঙ্কে ক্লিক করেন তবে এটি ফ্রেমটিকে পুরো উইন্ডোতে নয়, সেই ইউআরএল যেতে দেয়। এটিকে ঘুরে দেখার এক উপায় হ'ল সমস্ত লিঙ্ক রয়েছে target="_parent", ব্রাউজার সমর্থনটি "যথেষ্ট ভাল"।


7
উদাহরণস্বরূপ পিতৃ পৃষ্ঠা থেকে সিএসএস শৈলী প্রয়োগ করা হবে বলে মনে হয় না।
র‌্যান্ডি 21

5
@ র্যান্ডি তাই? এটি একটি প্লাস হিসাবে গণনা করা যেতে পারে (বিশেষত ব্যবহারকারীর দ্বারা উত্পাদিত সামগ্রী এবং এর মতো)। যাইহোক ক্যাশে হওয়ার কারণে আপনি অন্য কোনও অনুরোধ না করেই সহজেই CSS ফাইলগুলি সহজেই অন্তর্ভুক্ত করতে পারেন।
bjb568

এই প্রশ্নের উত্তরের জন্য আমার প্রয়োজনের উত্তর দিয়েছি - কীভাবে একটি এইচটিএমএল ফাইল অন্য একটি এইচটিএমএল ফাইলে অন্তর্ভুক্ত করা যায় ...
Grimxn

2
এটি জিকুয়ারি বা স্ক্রিপ্ট ছাড়া সেরা উত্তর। সুন্দর bjb568 ধন্যবাদ!
ডিবিএস

12
seamlessঅ্যাট্রিবিউট হয়েছে মুছে এইচটিএমএল খসড়া এটা থেকে এসেছেন থেকে। এটি ব্যবহার করবেন না।
মিতজা

33

একটি খুব পুরানো সমাধান আমি তখন আমার প্রয়োজনগুলি পূরণ করেছিলাম, তবে এটি কীভাবে মানদণ্ডের-অনুবর্তী কোড করতে হয় তা এখানে:

<!--[if IE]>
<object classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" data="some.html">
<p>backup content</p>
</object>
<![endif]-->

<!--[if !IE]> <-->
<object type="text/html" data="some.html">
<p>backup content</p>
</object>
<!--> <![endif]-->

9
এটা তোলে প্রদর্শিত <object>, <embed>এবং <iframe>এই জন্য সব কাজ, কিন্তু সব তিনটি ক্ষেত্রে তারা তাদের নিজস্ব styling এবং স্ক্রিপ্টিং প্রেক্ষিতে সঙ্গে পৃথক দস্তাবেজ তৈরি তাদের মধ্যে বদলে, এবং উদাহরণস্বরূপ কোন লিঙ্ক ডিফল্ট খোলা দ্বারা (আইফ্রেম বিশেষ করে কুশ্রী সীমানা এবং স্ক্রোলবারগুলি অন্তর্ভুক্ত) মূল পৃষ্ঠা (যদিও এটি লক্ষ্য = "_ পিতামাতা" দিয়ে ওভাররাইড করা যেতে পারে)। এই seamlessসমস্তগুলি থেকে, কেবলমাত্র ইফ্রেমেই এইচটিএমএল 5 অ্যাট্রিবিউট (বিজেবি 568 দ্বারা উল্লিখিত) এর মাধ্যমে আরও সংহত হওয়ার কিছুটা আশা রয়েছে , তবে এটি এখনও ভাল সমর্থনযোগ্য নয়: caniuse.com/#feat=iframe-seamless
waldyrious

2
iframe-seamless এইচটিএমএল স্ট্যান্ডার্ড থেকে বাদ দেওয়া হয়েছে: github.com/hatwg/html/issues/331 । সুতরাং @ ওয়াল্ডরিয়াস মন্তব্যটি এখন আর সঠিক নয় (এটি আপনার মন্তব্য আপডেট করার মন আছে?)
টমস পসপেক

1
@ টোমপোসপেক, শীর্ষস্থানীয় হওয়ার জন্য ধন্যবাদ। আমি আমার মন্তব্যটি আর সম্পাদনা করতে পারি না, তবে আশা করি আপনার প্রতিক্রিয়া পাঠকদের জন্য প্রয়োজনীয় সাবধানতা সরবরাহ করবে। স্পষ্টতই, শেষ বাক্যটি ( seamlessবৈশিষ্ট্য সম্পর্কে ) একমাত্র পুরানো অংশ - বাকীটি এখনও প্রয়োগ হয়।
ওয়াল্ডরিয়াস

17

বিকল্প হিসাবে, যদি আপনার সার্ভারে .htaccess ফাইলটিতে অ্যাক্সেস থাকে তবে আপনি একটি সহজ নির্দেশিকা যুক্ত করতে পারেন যা পিএইচপি কে .html এক্সটেনশনে শেষ হওয়া ফাইলগুলিতে ব্যাখ্যা করার অনুমতি দেবে।

RemoveHandler .html
AddType application/x-httpd-php .php .html

এখন আপনি অন্যান্য ফাইলগুলি অন্তর্ভুক্ত করতে একটি সাধারণ পিএইচপি স্ক্রিপ্ট ব্যবহার করতে পারেন:

<?php include('b.html'); ?>

28
হ্যাঁ এটি খুব খারাপ পরামর্শ। এইচটিএমএল ফাইল স্থিতিশীল এবং খুব দ্রুত অ্যাপাচি দ্বারা পরিবেশন করা হয়। আপনি যদি পিএইচপি পার্সারে সমস্ত এইচটিএমএল ফাইলগুলি কেবল ইনকুড ফাইলগুলিতে যুক্ত করেন তবে আপনার সার্ভারগুলিতে আপনার প্রচুর পারফরম্যান্স সমস্যা হবে। জাভাস্ক্রিপ্টের উপায় (jQuery বা সাধারণ জেএস) খুব ভাল সমাধান নয়, তবে তারা এখনও এর চেয়ে কার্যকর এবং কম বিপজ্জনক।
Gfra54

@ জিফরা ৫৪ আপনি কী বোঝাতে চাইছেন যে আমরা যদি কেবল এটির জন্য অ্যাপাচি ব্যবহার করি তবে আমাদের পারফরম্যান্সের সমস্যা হবে এবং আমরা সাইটের জন্য কোনও পিএইচপি কাজ না করি? বা যদি আমি পিএইচপি এবং এই জিনিসটি একসাথে ব্যবহার করি তবে এটি ধীর হয়ে যাবে?
user3459110

1
সাবধানতা: এই লাইনগুলি যুক্ত করার .htaccessফলে htmlব্রাউজারে দেখার চেয়ে পৃষ্ঠাগুলি ফাইল হিসাবে ডাউনলোড করার চেষ্টা করতে পারে । প্রথম পরীক্ষা। দাবি অস্বীকার: আমি এখন উপরোক্ত সমাধানটি চেষ্টা করার পরে এখনই তা ঘটেছিল। আমার .htaccessউপরের দুটি লাইন বাদে খালি ছিল। সাবধানতা পরামর্শ। loloপরিবর্তে এর jQuery সমাধান (নীচে) চেষ্টা করুন ।
সিএসফাস

মানুষ আমি নিজেকে আগে থেকে এটি করা সত্ত্বেও নিজেকে জটিল করে তুলছিলাম। অনুস্মারকটির জন্য ধন্যবাদ। আমার যে উদ্দেশ্যে প্রয়োজন তা সত্যিই পারফরম্যান্সকে প্রভাবিত করে না তাই আমি দুর্দান্ত।
Gman

এই এই পারফরম্যান্স-পেষণমূলক উত্তরটি বক্স-অফ-চিন্তাভাবনার এক দুর্দান্ত উদাহরণ। আমি কখনই এটির পরামর্শ দেব না, তবে আপনার যখন পিএইচপি স্লেজহ্যামারের একটি দ্রুত বিট দরকার হয় তখন হয়তো একটি জীবনকালীন। :-)
মুডবুম

14

কিছু ফাইল থেকে এইচটিএমএল বিষয়বস্তু অন্তর্ভুক্ত করা দরকার হলে নিম্নলিখিতগুলি কাজ করে: উদাহরণস্বরূপ, নিম্নলিখিত লাইনে OBJECT সংজ্ঞাটি যেখানে উপস্থিত হয় সেখানে টুকরো_ট_নোক্লিন্ড html এর বিষয়বস্তু অন্তর্ভুক্ত করা হবে।

...text before...
<OBJECT data="file_to_include.html">
Warning: file_to_include.html could not be included.
</OBJECT>
...text after...

তথ্যসূত্র: http://www.w3.org/TR/WD-html40-970708/struct/includes.html#h-7.7.4


2
একটি কবজ মত কাজ করে এবং এটি সবচেয়ে পরিষ্কার সমাধান। এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
ভবোকান

একমত। কেবল একটি নোট: একটি স্ব-সমাপনকারী অবজেক্ট ট্যাগ করার চেষ্টা করবেন না। এর পরে লেখাটি মুছে যাবে।
শ্রীধর সারনোবাত

দেখে মনে হচ্ছে এটি একটি নতুন "# ডকুমেন্ট" তৈরি করেছে যা স্বয়ংক্রিয়ভাবে নতুন, নেস্টেড <html> এবং <body> ট্যাগ ধারণ করে। এটি আমার উদ্দেশ্যে কাজ করে নি; আমার .html ফাইলে <স্ক্রিপ্ট src = "..." টাইপ = "পাঠ্য / জাভাস্ক্রিপ্ট"> ট্যাগ রয়েছে; তবে জেএস নতুন রেফারেন্স ত্রুটি পেয়েছে।
IAM_AL_X

12

এখানে আমার অন্তর্নিহিত সমাধান:

(() => {
    const includes = document.getElementsByTagName('include');
    [].forEach.call(includes, i => {
        let filePath = i.getAttribute('src');
        fetch(filePath).then(file => {
            file.text().then(content => {
                i.insertAdjacentHTML('afterend', content);
                i.remove();
            });
        });
    });
})();
<p>FOO</p>

<include src="a.html">Loading...</include>

<p>BAR</p>

<include src="b.html">Loading...</include>

<p>TEE</p>


1
ওও, এটি আরও সহজ
অ্যারিয়ান

সত্যিই দুর্দান্ত এবং সহজ সমাধান, ধন্যবাদ ^^
মার্চকে রিমলিং ling

11

W3.js এ এর ​​মতো কাজগুলি অন্তর্ভুক্ত করে:

<body>
<div w3-include-HTML="h1.html"></div>
<div w3-include-HTML="content.html"></div>
<script>w3.includeHTML();</script>
</body>

যথাযথ বিবরণের জন্য এটি দেখুন: https://www.w3schools.com/howto/howto_html_incolve.asp


ডকুমেন্টটি কখন লোড হয়ে গেছে তা যদি আপনি জানতে চান তবে আপনি এটি নথির শেষে রাখতে পারেন: <img src = "thisimagedoesnotexist.dmy" onerror = 'initDocament ()' style = 'display: none;'> চতুর কৌশল , আহ?
কাজ রিসবার্গ

2
গুগল ক্রোম নিয়ে কাজ করছে না।
ডিপসেল

9

এটিই আমাকে সাহায্য করেছিল। থেকে HTML কোডের একটি ব্লক যুক্ত করার জন্য b.htmlকরতে a.html, এই ঢোকা উচিত headএর ট্যাগ a.html:

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>

তারপরে বডি ট্যাগে, ধারকটিতে লোড লোড করার b.htmlজন্য একটি অনন্য আইডি এবং একটি জাভাস্ক্রিপ্ট ব্লক দিয়ে একটি ধারক তৈরি করা হয়েছে:

<div id="b-placeholder">

</div>

<script>
$(function(){
  $("#b-placeholder").load("b.html");
});
</script>

5
এই উত্তরটি এই প্রশ্নের গৃহীত উত্তরের চেয়ে আলাদা কীভাবে?
মোহাম্মদ উসমান

1
@ মোহাম্মদউসমান এখানে কন্টেইনার এবং জাভাস্ক্রিপ্ট কোডটি বডি ট্যাগের মধ্যে রয়েছে যখন গৃহীত উত্তরগুলি সেগুলি হেড ট্যাগে রাখে এবং কেবল ধারকটি কেবল বডি ট্যাগে রেখে দেয়।
রামটিন

এটি কোনও নতুন উত্তরের জন্য মূল্যহীন নয় ... এটি একটি মন্তব্য
কেনেট সেলাস্টে

8

আমি জানি এটি একটি খুব পুরানো পোস্ট, তাই কিছু পদ্ধতি তখন ফিরে পাওয়া যায়নি। তবে এখানে এটি আমার খুব সহজ গ্রহণ (লোলো এর উত্তরের ভিত্তিতে)।

এটি এইচটিএমএল 5 ডেটা- * বৈশিষ্ট্যগুলির উপর নির্ভর করে এবং তাই এটি খুব জেনেরিক যে প্রতিটি ক্লাসের সাথে মিলিত "লোড-এইচটিএমএল" এর জন্য প্রতিটি ফাংশনটি jQuery এর জন্য ব্যবহার করে এবং সামগ্রীটি লোড করতে তার সম্পর্কিত 'ডেটা-উত্স' বৈশিষ্ট্যটি ব্যবহার করে:

<div class="container-fluid">
    <div class="load-html" id="NavigationMenu" data-source="header.html"></div>
    <div class="load-html" id="MainBody" data-source="body.html"></div>
    <div class="load-html" id="Footer" data-source="footer.html"></div>
</div>
<script src="js/jquery.min.js"></script>
<script>
$(function () {
    $(".load-html").each(function () {
        $(this).load(this.dataset.source);
    });
});
</script>

7

আপনি এইচটিএমএল আমদানির একটি পলফিল ( https://www.html5rocks.com/en/tutorials/webcomp াংশ/imports/ ) ব্যবহার করতে পারেন , বা সেই সরলিকৃত সমাধান https://github.com/dsheiko/html-import

উদাহরণস্বরূপ, পৃষ্ঠাটিতে আপনি এইচটিএমএল ব্লকটি আমদানি করেন:

<link rel="html-import" href="./some-path/block.html" >

ব্লকের নিজস্ব আমদানি থাকতে পারে:

<link rel="html-import" href="./some-other-path/other-block.html" >

আমদানিকারকটি এসএসআই-এর মতো বোঝা এইচটিএমএল দ্বারা নির্দেশকে প্রতিস্থাপন করে

আপনি এই ছোট জাভাস্ক্রিপ্টটি লোড করার সাথে সাথে এই নির্দেশাবলী স্বয়ংক্রিয়ভাবে পরিবেশন করা হবে:

<script async src="./src/html-import.js"></script>

এটি DOM স্বয়ংক্রিয়ভাবে প্রস্তুত হওয়ার সাথে সাথে আমদানিগুলি প্রক্রিয়া করবে। তদাতিরিক্ত, এটি এমন একটি API উন্মোচন করে যা আপনি ম্যানুয়ালি চালাতে, লগগুলি পেতে এবং এই জাতীয় ব্যবহার করতে পারেন। উপভোগ করুন :)


এইচটিএমএল ফাইলটিতে স্ক্রিপ্ট লাইনটি কোথায় যাওয়া উচিত?
অ্যান্ড্রু ট্রাকল

দেহের মধ্যে যে কোনও জায়গায়। অন্তর্ভুক্ত ফাইলগুলির সামগ্রীতে পুনরাবৃত্তভাবে স্থাপন করা যেতে পারে
দিমিত্রি শেইকো

আপনি এটি পরীক্ষা করেছেন?
ভিক্ষু সুবহুতি

নিশ্চয়ই করেছি। আমি আসলে এটি বছরের পর বছর ধরে ব্যবহার করে আসছি। কেন জিজ্ঞেস করছেন? কোন সমস্যা?
দিমিত্রি শেইকো

সুতরাং এটি "কী" script async srcএটি মনে হয়। চেষ্টা করে দেখছি!
জাভদ্বা

6

বেশিরভাগ সমাধান কাজ করে তবে তাদের jquery নিয়ে সমস্যা রয়েছে :

সমস্যাটি কোড অনুসরণ করছে $(document).ready(function () { alert($("#includedContent").text()); } অন্তর্ভুক্ত সামগ্রীকে সতর্ক করার পরিবর্তে সতর্কতাগুলির ।

আমি নীচের কোডটি লিখি, আমার সমাধানে আপনি $(document).readyকার্যক্রমে অন্তর্ভুক্ত সামগ্রীটিতে অ্যাক্সেস করতে পারেন :

(কীটি সমলয়ভাবে অন্তর্ভুক্ত সামগ্রী লোড করছে)।

index.htm :

<html>
    <head>
        <script src="jquery.js"></script>

        <script>
            (function ($) {
                $.include = function (url) {
                    $.ajax({
                        url: url,
                        async: false,
                        success: function (result) {
                            document.write(result);
                        }
                    });
                };
            }(jQuery));
        </script>

        <script>
            $(document).ready(function () {
                alert($("#test").text());
            });
        </script>
    </head>

    <body>
        <script>$.include("include.inc");</script>
    </body>

</html>

include.inc :

<div id="test">
    There is no issue between this solution and jquery.
</div>

jquery গিথুব এ প্লাগইন অন্তর্ভুক্ত


এটি ব্যবহার করার সময় এবং তারপরে কোনও ব্রাউজার থেকে পৃষ্ঠা উত্স দেখার সময় আপনি কেবল স্ক্রিপ্টটি দেখতে পাবেন। এটি কী কোনও অনুসন্ধান ইঞ্জিনগুলি আপনার সাইটের বিশ্লেষণের ক্ষমতাকে প্রভাবিত করে না, শেষ পর্যন্ত কোনও এসইও প্রচেষ্টা ধ্বংস করে?
hmcclungiii

হ্যাঁ, এই পদ্ধতিটি কোনও
এসইওকে

তারপরে আবার প্রতিটি জাভাস্ক্রিপ্ট-ভিত্তিক পদ্ধতি এটি করে।
wizzwizz4

5

নামযুক্ত ফাইলের বিষয়বস্তু সন্নিবেশ করতে:

<!--#include virtual="filename.htm"-->

1
[] - # ভার্চুয়াল = "অন্তর্ভুক্ত_মেগা
htm

4

অথরির উত্তর (প্রথম!) অনেক বেশি চূড়ান্ত ছিল! খুব ভালো!

আপনি যদি ইউআরএল প্যারামিটার হিসাবে অন্তর্ভুক্ত করার জন্য পৃষ্ঠার নামটি পাস করতে চান তবে এই পোস্টটির সাথে একত্রে ব্যবহার করার জন্য খুব সুন্দর সমাধান রয়েছে:

http://www.jquerybyexample.net/2012/06/get-url-parameters-using-jquery.html

সুতরাং এটি এমন কিছু হয়ে যায়:

আপনার ইউআরএল:

www.yoursite.com/a.html?p=b.html

A.html কোড এখন হয়ে:

<html> 
  <head> 
    <script src="jquery.js"></script> 
    <script> 
    function GetURLParameter(sParam)
    {
      var sPageURL = window.location.search.substring(1);
      var sURLVariables = sPageURL.split('&');
      for (var i = 0; i < sURLVariables.length; i++) 
      {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) 
        {
            return sParameterName[1];
        }
      }
    }​
    $(function(){
      var pinc = GetURLParameter('p');
      $("#includedContent").load(pinc); 
    });
    </script> 
  </head> 

  <body> 
     <div id="includedContent"></div>
  </body> 
</html>

এটা আমার জন্য খুব ভাল কাজ! আমি আশা করি সাহায্য করেছে :)


সুরক্ষা সমস্যা, কারণ আপনি কাউকে এই লিঙ্কটি পাঠাতে পারেন: www.yoursite.com/a.html?p=htttp://www.linktovir.us/here.html
জাস্টস

4

এইচটিএমএল 5 রকস ডট কমের এই স্টাফটিতে খুব ভাল টিউটোরিয়াল রয়েছে এবং এটি হয়ত একটু দেরি হতে পারে তবে আমি নিজেও জানতাম না যে এটি বিদ্যমান। ডাব্লু 3 স্কুলগুলিতে ডাব্লু 3 জেএস নামে একটি নতুন লাইব্রেরি ব্যবহার করে এটি করার একটি উপায় রয়েছে w জিনিসটি হ'ল এর জন্য একটি ওয়েব সার্ভার এবং HTTPRequest অবজেক্টের ব্যবহার প্রয়োজন। আপনি আসলে এগুলি স্থানীয়ভাবে লোড করতে এবং আপনার মেশিনে পরীক্ষা করতে পারবেন না। আপনি যা করতে পারেন তা হ'ল উপরের html5rocks লিঙ্কে প্রদত্ত পলিফিলগুলি ব্যবহার করুন বা তাদের টিউটোরিয়ালটি অনুসরণ করুন। একটি সামান্য জেএস যাদু দিয়ে আপনি এই জাতীয় কিছু করতে পারেন:

 var link = document.createElement('link');
 if('import' in link){
     //Run import code
     link.setAttribute('rel','import');
     link.setAttribute('href',importPath);
     document.getElementsByTagName('head')[0].appendChild(link);
     //Create a phantom element to append the import document text to
     link = document.querySelector('link[rel="import"]');
     var docText = document.createElement('div');
     docText.innerHTML = link.import;
     element.appendChild(docText.cloneNode(true));
 } else {
     //Imports aren't supported, so call polyfill
     importPolyfill(importPath);
 }

এটি লিঙ্কটি তৈরি করবে (ইতিমধ্যে সেট থাকলে ওয়ান্টেড লিঙ্ক উপাদান হিসাবে পরিবর্তিত হতে পারে), আমদানি সেট করুন (আপনার যদি ইতিমধ্যে এটি না থাকে) এবং তারপরে এটি যুক্ত করুন। এটি সেখান থেকে এটি নেবে এবং এইচটিএমএলে ফাইলটি বিশ্লেষণ করবে এবং তারপরে এটি একটি ডিভের অধীনে পছন্দসই উপাদানটিতে যুক্ত করবে। আপনার প্রয়োজনীয় সংযোজন উপাদানটি থেকে আপনি যে লিঙ্কটি ব্যবহার করছেন তাতে আপনার প্রয়োজনগুলি ফিট করতে এই সমস্তটি পরিবর্তন করা যেতে পারে। আমি আশা করি এটি সাহায্য করেছে, এটি এখন অপ্রাসঙ্গিক হতে পারে যদি jQuery বা W3.js এর মতো লাইব্রেরি এবং ফ্রেমওয়ার্ক ব্যবহার না করে আরও দ্রুততর উপায়গুলি বের হয়ে আসে if

আপডেট: এটি এমন একটি ত্রুটি ছুঁড়ে দেবে যে স্থানীয় আমদানিটি কর্স নীতি দ্বারা অবরুদ্ধ করা হয়েছে। গভীর ওয়েবের বৈশিষ্ট্যগুলির কারণে এটি ব্যবহার করতে সক্ষম হতে গভীরতর ওয়েবের অ্যাক্সেস প্রয়োজন। (ব্যবহারিক ব্যবহারের অর্থ নয়)


4

ফেচ এপিআই এবং অ্যাসিঙ্ক ফাংশনটি ব্যবহার করে আমার পদ্ধতিটি এখানে

<div class="js-component" data-name="header" data-ext="html"></div>
<div class="js-component" data-name="footer" data-ext="html"></div>

<script>
    const components = document.querySelectorAll('.js-component')

    const loadComponent = async c => {
        const { name, ext } = c.dataset
        const response = await fetch(`${name}.${ext}`)
        const html = await response.text()
        c.innerHTML = html
    }

    [...components].forEach(loadComponent)
</script>

3

আপাতত এই কাজের জন্য সরাসরি কোনও HTML সমাধান নেই। এমনকি এইচটিএমএল আমদানি (যা স্থায়ীভাবে খসড়াতে রয়েছে ) কাজটি করবে না, কারণ আমদানি! = অন্তর্ভুক্ত করুন এবং কিছু জেএস যাদু যাহাই হউক না কেন প্রয়োজন হবে।
আমি সম্প্রতি একটি ভ্যানিলাজেএস স্ক্রিপ্ট লিখেছি যা কেবল কোনও HTML ছাড়াই এইচটিএমএলকে অন্তর্ভুক্ত করার জন্য।

শুধু আপনার মধ্যে রাখুন a.html

<link data-wi-src="b.html" />
<!-- ... and somewhere below is ref to the script ... -->
<script src="wm-html-include.js"> </script>  

এটি open-sourceএকটি ধারণা দিতে পারে এবং হতে পারে (আমি আশা করি)


3

আপনি জাভাস্ক্রিপ্ট এর লাইব্রেরি jQuery এর সাহায্যে এটি করতে পারেন:

এইচটিএমএল:

<div class="banner" title="banner.html"></div>

জাতীয়:

$(".banner").each(function(){
    var inc=$(this);
    $.get(inc.attr("title"), function(data){
        inc.replaceWith(data);
    });
});

দয়া করে নোট করুন যে banner.htmlআপনার অন্যান্য পৃষ্ঠাগুলিতে একই ডোমেনের অধীনে থাকা উচিত অন্যথায় আপনার ওয়েবপৃষ্ঠাগুলি ক্রস-অরিজিন রিসোর্স ভাগ করে নেওয়ারbanner.html কারণে ফাইলটিকে প্রত্যাখ্যান করবে ।

এছাড়াও, দয়া করে নোট করুন যে আপনি যদি আপনার সামগ্রীটি জাভাস্ক্রিপ্টের সাহায্যে লোড করেন তবে গুগল এটি সূচী করতে সক্ষম হবে না তাই এসইও কারণে এটি ঠিক কোনও ভাল পদ্ধতি নয়।


2

আপনি কি আইফ্রেম ইঞ্জেকশন ব্যবহার করে দেখেছেন?

এটি নথিতে আইফ্রেমকে ইনজেকশন দেয় এবং নিজেকে মুছে দেয় (এটি তখন এইচটিএমএল ডিওমে থাকবে বলে মনে করা হয়)

<iframe src="header.html" onload="this.before((this.contentDocument.body||this.contentDocument).children[0]);this.remove()"></iframe>

শুভেচ্ছা সহ


1

আমি এই জাতীয় কিছু অনুরূপ সন্ধান করতে এসেছি, তবে লোলো দ্বারা উত্পন্ন সমস্যা থেকে কিছুটা আলাদা। আমি অন্য পৃষ্ঠাগুলির লিঙ্কগুলির বর্ণানু মেনু ধারণ করে একটি এইচটিএমএল পৃষ্ঠা তৈরি করতে চেয়েছিলাম এবং অন্য পৃষ্ঠাগুলির প্রত্যেকটির উপস্থিতি থাকতে পারে বা নাও থাকতে পারে এবং সেগুলি যে ক্রমে তৈরি হয়েছিল তা বর্ণমালা (এমনকি সংখ্যাসূচক )ও নাও হতে পারে। এছাড়াও, তফকাদাসহোর মতো, আমি jQuery দিয়ে ওয়েব পৃষ্ঠাটি ফোটাতে চাইনি। সমস্যাটি গবেষণা করার পরে এবং কয়েক ঘন্টা পরীক্ষা করার পরে, প্রাসঙ্গিক মন্তব্য যুক্ত করে আমার জন্য এখানে কাজ করেছে:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/application/html; charset=iso-8859-1">
  <meta name="Author" content="me">
  <meta copyright="Copyright" content= "(C) 2013-present by me" />
  <title>Menu</title>

<script type="text/javascript">
<!--
var F000, F001, F002, F003, F004, F005, F006, F007, F008, F009,
    F010, F011, F012, F013, F014, F015, F016, F017, F018, F019;
var dat = new Array();
var form, script, write, str, tmp, dtno, indx, unde;

/*
The "F000" and similar variables need to exist/be-declared.
Each one will be associated with a different menu item,
so decide on how many items maximum you are likely to need,
when constructing that listing of them.  Here, there are 20.
*/


function initialize()
{ window.name="Menu";
  form = document.getElementById('MENU');
  for(indx=0; indx<20; indx++)
  { str = "00" + indx;
    tmp = str.length - 3;
    str = str.substr(tmp);
    script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = str + ".js";
    form.appendChild(script);
  }

/*
The for() loop constructs some <script> objects
and associates each one with a different simple file name,
starting with "000.js" and, here, going up to "019.js".
It won't matter which of those files exist or not.
However, for each menu item you want to display on this
page, you will need to ensure that its .js file does exist.

The short function below (inside HTML comment-block) is,
generically, what the content of each one of the .js files looks like:
<!--
function F000()
{ return ["Menu Item Name", "./URLofFile.htm", "Description string"];
}
-->

(Continuing the remarks in the main menu.htm file)
It happens that each call of the form.appendChild() function
will cause the specified .js script-file to be loaded at that time.
However, it takes a bit of time for the JavaScript in the file
to be fully integrated into the web page, so one thing that I tried,
but it didn't work, was to write an "onload" event handler.
The handler was apparently being called before the just-loaded
JavaScript had actually become accessible.

Note that the name of the function in the .js file is the same as one
of the the pre-defined variables like "F000".  When I tried to access
that function without declaring the variable, attempting to use an
"onload" event handler, the JavaScript debugger claimed that the item
was "not available".  This is not something that can be tested-for!
However, "undefined" IS something that CAN be tested-for.  Simply
declaring them to exist automatically makes all of them "undefined".
When the system finishes integrating a just-loaded .js script file,
the appropriate variable, like "F000", will become something other
than "undefined".  Thus it doesn't matter which .js files exist or
not, because we can simply test all the "F000"-type variables, and
ignore the ones that are "undefined".  More on that later.

The line below specifies a delay of 2 seconds, before any attempt
is made to access the scripts that were loaded.  That DOES give the
system enough time to fully integrate them into the web page.
(If you have a really long list of menu items, or expect the page
to be loaded by an old/slow computer, a longer delay may be needed.)
*/

  window.setTimeout("BuildMenu();", 2000);
  return;
}


//So here is the function that gets called after the 2-second delay  
function BuildMenu()
{ dtno = 0;    //index-counter for the "dat" array
  for(indx=0; indx<20; indx++)
  { str = "00" + indx;
    tmp = str.length - 3;
    str = "F" + str.substr(tmp);
    tmp = eval(str);
    if(tmp != unde) // "unde" is deliberately undefined, for this test
      dat[dtno++] = eval(str + "()");
  }

/*
The loop above simply tests each one of the "F000"-type variables, to
see if it is "undefined" or not.  Any actually-defined variable holds
a short function (from the ".js" script-file as previously indicated).
We call the function to get some data for one menu item, and put that
data into an array named "dat".

Below, the array is sorted alphabetically (the default), and the
"dtno" variable lets us know exactly how many menu items we will
be working with.  The loop that follows creates some "<span>" tags,
and the the "innerHTML" property of each one is set to become an
"anchor" or "<a>" tag, for a link to some other web page.  A description
and a "<br />" tag gets included for each link.  Finally, each new
<span> object is appended to the menu-page's "form" object, and thereby
ends up being inserted into the middle of the overall text on the page.
(For finer control of where you want to put text in a page, consider
placing something like this in the web page at an appropriate place,
as preparation:
<div id="InsertHere"></div>
You could then use document.getElementById("InsertHere") to get it into
a variable, for appending of <span> elements, the way a variable named
"form" was used in this example menu page.

Note: You don't have to specify the link in the same way I did
(the type of link specified here only works if JavaScript is enabled).
You are free to use the more-standard "<a>" tag with the "href"
property defined, if you wish.  But whichever way you go,
you need to make sure that any pages being linked actually exist!
*/

  dat.sort();
  for(indx=0; indx<dtno; indx++)
  { write = document.createElement('span');
    write.innerHTML = "<a onclick=\"window.open('" + dat[indx][1] +
                      "', 'Menu');\" style=\"color:#0000ff;" + 
                      "text-decoration:underline;cursor:pointer;\">" +
                      dat[indx][0] + "</a> " + dat[indx][2] + "<br />";
    form.appendChild(write);
  }
  return;
}

// -->
</script>
</head>

<body onload="initialize();" style="background-color:#a0a0a0; color:#000000; 

font-family:sans-serif; font-size:11pt;">
<h2>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MENU
<noscript><br /><span style="color:#ff0000;">
Links here only work if<br />
your browser's JavaScript<br />
support is enabled.</span><br /></noscript></h2>
These are the menu items you currently have available:<br />
<br />
<form id="MENU" action="" onsubmit="return false;">
<!-- Yes, the <form> object starts out completely empty -->
</form>
Click any link, and enjoy it as much as you like.<br />
Then use your browser's BACK button to return to this Menu,<br />
so you can click a different link for a different thing.<br />
<br />
<br />
<small>This file (web page) Copyright (c) 2013-present by me</small>
</body>
</html>

1

এখানে একটি দুর্দান্ত নিবন্ধ , আপনি সাধারণ লাইব্রেরি বাস্তবায়ন করতে পারেন এবং কেবলমাত্র এক লাইনে কোনও HTML ফাইল আমদানি করতে কোডের নীচে ব্যবহার করতে পারেন।

<head>
   <link rel="import" href="warnings.html">
</head>

আপনি গুগল পলিমারও চেষ্টা করতে পারেন


6
"কেবলমাত্র এক লাইনে কোনও HTML ফাইল আমদানি করার জন্য কোডের নীচে কোডটি ব্যবহার করুন" এটি বেশ বিতর্কিত। তারপরে আপনার আমদানি করা যেকোন সামগ্রীর ব্যবহার করতে আপনাকে কিছু জেএস লিখতে হবে, সুতরাং এটি "এক লাইন" এর চেয়ে বেশি হয়ে ওঠে।
স্কাইবন্ডসর

1

ES6 ব্যাকটিক্স ব্যবহার `: টেম্পলেট আক্ষরিক !

let nick = "Castor", name = "Moon", nuts = 1

more.innerHTML = `

<h1>Hello ${nick} ${name}!</h1>

You collected ${nuts} nuts so far!

<hr>

Double it and get ${nuts + nuts} nuts!!

` 
<div id="more"></div>

এইভাবে আমরা এনকোডিং কোট ছাড়াই এইচটিএমএলকে অন্তর্ভুক্ত করতে পারি, ডিওএম থেকে ভেরিয়েবলগুলি অন্তর্ভুক্ত করতে পারি এবং এগুলি।

এটি একটি শক্তিশালী টেম্প্লেটিং ইঞ্জিন, আমরা পৃথক জেএস ফাইল ব্যবহার করতে পারি এবং সামগ্রীটি স্থানে লোড করতে, বা এমনকি সবকিছুতে পৃথক করে ডিমান্ডে কল করতে পারি:

let inject = document.createElement('script');
inject.src= '//....com/template/panel45.js';
more.appendChild(inject);

https://caniuse.com/#feat=template-literals


1
চমৎকার উদাহরণ - কেন আপগোটস (এখন অবধি)?
জাভদ্বা

আরে, আপনি ঠিকই বলেছেন, 2018 সালে উপরেরটি সত্যিকারের ভাল আরটিএফএমের একটি স্পষ্ট লক্ষণ ছিল;) আমি javascriptতখন পর্যন্ত শখের প্রোগ্রামার হিসাবে সেই ব্যাজটিকে মূলত ছিন্ন করেছি ।
এনভিআরএম

1

সলিউশন কাজ করার জন্য আপনাকে csi.min.js ফাইলটি অন্তর্ভুক্ত করতে হবে যা আপনি এখানে সনাক্ত করতে পারেন

গিটহাবের উপরে প্রদর্শিত উদাহরণ অনুসারে, এই লাইব্রেরিটি ব্যবহার করতে আপনাকে অবশ্যই আপনার পৃষ্ঠার শিরোনামে csi.js ফাইলটি অন্তর্ভুক্ত করতে হবে, তারপরে আপনার কনটেইনারটিতে ফাইলটি অন্তর্ভুক্ত করতে চান তার মান সেট সহ ডেটা-অন্তর্ভুক্ত বৈশিষ্ট্য যুক্ত করতে হবে উপাদান।

অনুলিপি কোড লুকান

<html>
  <head>
    <script src="csi.js"></script>
  </head>
  <body>
    <div data-include="Test.html"></div>
  </body>
</html>

... আশা করি এটা সাহায্য করবে.


0

পিএইচপি একটি সার্ভার স্তরের স্ক্রিপ্টিং ভাষা। এটি অনেকগুলি কাজ করতে পারে তবে একটি জনপ্রিয় ব্যবহার হ'ল এইচটিএমএল ডকুমেন্টগুলি আপনার পৃষ্ঠাগুলির অভ্যন্তরে অন্তর্ভুক্ত করা যা এসএসআইয়ের মতোই। এসএসআইয়ের মতো এটিও একটি সার্ভার স্তরের প্রযুক্তি। আপনি যদি নিশ্চিত না হন যে আপনার ওয়েবসাইটে পিএইচপি কার্যকারিতা রয়েছে কিনা আপনার হোস্টিং সরবরাহকারীর সাথে যোগাযোগ করুন।

এখানে কোনও সাধারণ পিএইচপি স্ক্রিপ্ট আপনি কোনও পিএইচপি-সক্ষম ওয়েব পৃষ্ঠায় এইচটিএমএলের স্নিপেট অন্তর্ভুক্ত করতে ব্যবহার করতে পারেন:

আপনার সাইটের সাধারণ উপাদানগুলির জন্য ফাইলগুলি পৃথক করার জন্য এইচটিএমএল সংরক্ষণ করুন। উদাহরণস্বরূপ, আপনার নেভিগেশন বিভাগটি নেভিগেশন html বা নেভিগেশন.পিপি হিসাবে সংরক্ষণ করা হতে পারে। প্রতিটি পৃষ্ঠায় এইচটিএমএল অন্তর্ভুক্ত করতে নিম্নলিখিত পিএইচপি কোডটি ব্যবহার করুন।

<?php require($DOCUMENT_ROOT . "navigation.php"); ?>

আপনি ফাইলটি অন্তর্ভুক্ত করতে চান এমন প্রতিটি পৃষ্ঠায় একই কোডটি ব্যবহার করুন। হিগলাইটেড ফাইলের নামটি আপনার অন্তর্ভুক্ত ফাইলের নাম এবং পথে পরিবর্তন করতে ভুলবেন না।


0

আপনি যদি জ্যাঞ্জো / বুটলের মতো কিছু কাঠামো ব্যবহার করেন তবে তারা প্রায়শই কিছু টেম্পলেট ইঞ্জিন চালান। ধরা যাক আপনি বোতল ব্যবহার করেন, এবং ডিফল্ট টেম্পলেট ইঞ্জিন হ'ল সিম্পল টেম্পলেট ইঞ্জিন । এবং নীচে খাঁটি এইচটিএমএল ফাইল রয়েছে

$ cat footer.tpl
<hr> <footer>   <p>&copy; stackoverflow, inc 2015</p> </footer>

আপনি নিজের প্রধান ফাইলটিতে পাদলেখ.টি.পি.এল অন্তর্ভুক্ত করতে পারেন:

$ cat dashboard.tpl
%include footer

এছাড়াও, আপনি আপনার ড্যাশবোর্ডার্ড.টিপিএলতে প্যারামিটারও পাস করতে পারেন।


0

Https://stackoverflow.com/a/31837264/4360308 এর উত্তরের ভিত্তিতে আমি নোডেজ (+ এক্সপ্রেস + চেরিও) এর সাথে এই কার্যকারিতাটি নীচে প্রয়োগ করেছি:

এইচটিএমএল (index.html)

<div class="include" data-include="componentX" data-method="append"></div>
<div class="include" data-include="componentX" data-method="replace"></div>

জাতীয়

function includeComponents($) {
    $('.include').each(function () {
        var file = 'view/html/component/' + $(this).data('include') + '.html';
        var dataComp = fs.readFileSync(file);
        var htmlComp = dataComp.toString();
        if ($(this).data('method') == "replace") {
            $(this).replaceWith(htmlComp);
        } else if ($(this).data('method') == "append") {
            $(this).append(htmlComp);
        }
    })
}

function foo(){
    fs.readFile('./view/html/index.html', function (err, data) {
        if (err) throw err;
        var html = data.toString();
        var $ = cheerio.load(html);
        includeComponents($);
        ...
    }
}

সংযোজন -> ডিভ মধ্যে লিখিত সামগ্রী অন্তর্ভুক্ত

প্রতিস্থাপন -> ডিভ প্রতিস্থাপন

আপনি একই ডিজাইন অনুসরণ করে আরও বেশি আচরণ যুক্ত করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.