Js nhúng html

Sau đây là mã để nhúng JavaScript vào tệp html -

Thí dụ

Bản thử trực tiếp





Document




Embed javascript in html file



script. js

resEle.innerHTML += 'External JavaScript loaded ';

đầu ra

Đoạn mã trên sẽ tạo ra đầu ra sau -

Cập nhật ngày 17-Jul-2020 08. 20. 18

Để bao gồm tệp JavaScript bên ngoài, chúng ta có thể sử dụng thẻ script có thuộc tính

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
5. Bạn đã sử dụng thuộc tính
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
5 khi sử dụng hình ảnh. Giá trị cho thuộc tính src phải là đường dẫn đến tệp JavaScript của bạn

Thẻ tập lệnh này phải được bao gồm giữa các thẻ trong tài liệu HTML của bạn

Tệp JavaScript

Tệp JavaScript không phải là tệp HTML hoặc tệp CSS
  • Luôn kết thúc bằng phần mở rộng js
  • Chỉ bao gồm JavaScript

Theo thông lệ, đặt tất cả các tệp JavaScript vào một thư mục có tên là js trên các trang web, như vậy

Bản demo đơn giản bao gồm JavaScript

Dưới đây là minh họa rất đơn giản về cách đưa tệp JavaScript bên ngoài vào trang HTML

JavaScript của người khác

Đối với lớp này, bạn không cần phải viết bất kỳ mã JavaScript thực tế nào. Thật may mắn cho bạn, nhiều người đã viết rất nhiều JavaScript và thậm chí còn cho phép bạn sử dụng nó miễn phí

Khung JavaScript

Framework về cơ bản là một thư viện mã cho một ngôn ngữ nhất định. Nói chung, khung trừu tượng hóa các tác vụ phổ biến và giúp các nhà thiết kế và nhà phát triển viết mã cụ thể của họ dễ dàng và nhanh hơn. Các khung không thực sự tự làm bất cứ điều gì, chúng chỉ cung cấp một nền tảng dễ dàng hơn để mọi người xây dựng trên đó

Khung JavaScript phổ biến

Trong số các khung này, JQuery hiện là khung phổ biến nhất. Đó cũng là từ mà bạn muốn gặp nhất khi được sử dụng như một từ thông dụng

Kích thước tệp JavaScript

Nhiều tệp JavaScript có xu hướng khá lớn, điều này có thể làm chậm thời gian tải trang của bạn. Các khung phổ biến thường cung cấp phiên bản mã "rút gọn" của chúng. Bạn phải luôn sử dụng phiên bản này trong các trang của mình vì phiên bản này sẽ có kích thước tệp nhỏ hơn

Nhận toàn quyền truy cập vào JavaScript. The Definitive Guide, 6th Edition và hơn 60 nghìn đầu sách khác, với 10 ngày dùng thử miễn phí O'Reilly

Ngoài ra còn có các sự kiện trực tuyến trực tiếp, nội dung tương tác, tài liệu chuẩn bị chứng nhận, v.v.

Đến bây giờ, bạn đã thực sự hiểu rõ về cách nhúng mọi thứ vào trang web của mình, bao gồm hình ảnh, video và âm thanh. Tại thời điểm này, chúng tôi muốn thực hiện một bước đi ngang, xem xét một số yếu tố cho phép bạn nhúng nhiều loại nội dung vào trang web của mình. các phần tử

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7,
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
8 và
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
9.
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 dùng để nhúng các trang web khác và hai trang còn lại cho phép bạn nhúng các tài nguyên bên ngoài, chẳng hạn như tệp PDF

điều kiện tiên quyết. Trình độ máy tính cơ bản, cài đặt phần mềm cơ bản, kiến ​​thức cơ bản về làm việc với tệp, làm quen với các nguyên tắc cơ bản về HTML [như được trình bày trong Bắt đầu với HTML] và các bài viết trước trong mô-đun này. Khách quan. Để tìm hiểu cách nhúng các mục vào trang web bằng cách sử dụng
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
9,
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
8 và
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7, chẳng hạn như tài liệu PDF và các trang web khác

Một lịch sử ngắn của nhúng

Cách đây rất lâu trên Web, việc sử dụng khung để tạo trang web đã trở nên phổ biến — các phần nhỏ của trang web được lưu trữ trong các trang HTML riêng lẻ. Chúng được nhúng trong một tài liệu chính gọi là bộ khung, cho phép bạn chỉ định khu vực trên màn hình mà mỗi khung được lấp đầy, giống như định cỡ các cột và hàng của bảng. Đây được coi là đỉnh cao của sự tuyệt vời vào giữa đến cuối những năm 90 và có bằng chứng cho thấy việc chia một trang web thành các phần nhỏ hơn như thế này sẽ tốt hơn cho tốc độ tải xuống — đặc biệt đáng chú ý là khi đó các kết nối mạng quá chậm. Tuy nhiên, chúng có nhiều vấn đề, vượt xa mọi mặt tích cực khi tốc độ mạng nhanh hơn, vì vậy bạn không thấy chúng được sử dụng nữa

Một thời gian ngắn sau [cuối những năm 90, đầu những năm 2000], các công nghệ plugin trở nên rất phổ biến, chẳng hạn như Java Applet và Flash — những công nghệ này cho phép các nhà phát triển web nhúng nội dung phong phú vào các trang web như video và hoạt ảnh, những thứ không có sẵn thông qua HTML. Việc nhúng các công nghệ này đã đạt được thông qua các yếu tố như

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
9 và
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
8 ít được sử dụng hơn và chúng rất hữu ích vào thời điểm đó. Kể từ đó, chúng đã lỗi thời do nhiều vấn đề, bao gồm khả năng truy cập, bảo mật, kích thước tệp, v.v. Ngày nay, các trình duyệt chính đã ngừng hỗ trợ các plugin như Flash

Cuối cùng, phần tử ________ 37 xuất hiện [cùng với các cách nhúng nội dung khác, chẳng hạn như ________ 35, ________ 36, v.v. ] Điều này cung cấp một cách để nhúng toàn bộ tài liệu web vào bên trong một tài liệu khác, như thể nó là một

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 hoặc phần tử tương tự khác và được sử dụng thường xuyên ngày nay

Với bài học lịch sử đã hết, chúng ta hãy tiếp tục và xem cách sử dụng một số trong số này

học tích cực. sử dụng nhúng cổ điển

Trong bài viết này, chúng ta sẽ đi thẳng vào phần học tích cực, để ngay lập tức cung cấp cho bạn ý tưởng thực tế về công nghệ nhúng hữu ích cho việc gì. Thế giới trực tuyến rất quen thuộc với YouTube, nhưng nhiều người không biết về một số tiện ích chia sẻ mà YouTube có sẵn. Hãy xem cách YouTube cho phép chúng tôi nhúng video vào bất kỳ trang nào chúng tôi muốn bằng cách sử dụng

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7

  1. Trước tiên, hãy truy cập YouTube và tìm một video bạn thích
  2. Bên dưới video, bạn sẽ tìm thấy nút Chia sẻ — hãy chọn nút này để hiển thị các tùy chọn chia sẻ
  3. Chọn nút Nhúng và bạn sẽ nhận được một số mã
    html {
      font-family: sans-serif;
    }
    
    h2 {
      font-size: 16px;
    }
    
    .a11y-label {
      margin: 0;
      text-align: right;
      font-size: 0.7rem;
      width: 98%;
    }
    
    body {
      margin: 10px;
      background: #f5f9fa;
    }
    
    7 — hãy sao chép mã này
  4. Chèn nó vào hộp Nhập bên dưới và xem kết quả ở Đầu ra là gì

Để có điểm thưởng, bạn cũng có thể thử nhúng Google Map vào ví dụ

  1. Truy cập Google Maps và tìm bản đồ bạn thích
  2. Nhấp vào "Menu Hamburger" [ba đường kẻ ngang] ở trên cùng bên trái của giao diện người dùng
  3. Chọn tùy chọn Chia sẻ hoặc nhúng bản đồ
  4. Chọn tùy chọn Nhúng bản đồ, tùy chọn này sẽ cung cấp cho bạn một số mã
    html {
      font-family: sans-serif;
    }
    
    h2 {
      font-size: 16px;
    }
    
    .a11y-label {
      margin: 0;
      text-align: right;
      font-size: 0.7rem;
      width: 98%;
    }
    
    body {
      margin: 10px;
      background: #f5f9fa;
    }
    
    7 — sao chép mã này
  5. Chèn nó vào hộp Nhập bên dưới và xem kết quả ở Đầu ra là gì

Nếu bạn mắc lỗi, bạn luôn có thể đặt lại bằng nút Đặt lại. Nếu bạn thực sự gặp khó khăn, hãy nhấn nút Hiển thị giải pháp để xem câu trả lời

Live output



Editable code

  Press Esc to move focus away from the code area [Tab inserts a tab character].





  
  

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}

________số 8

iframe chi tiết

Vì vậy, đó là dễ dàng và thú vị, phải không? . Điều này thật tuyệt vời khi kết hợp nội dung của bên thứ ba vào trang web của bạn mà bạn có thể không có quyền kiểm soát trực tiếp và không muốn triển khai phiên bản của riêng mình — chẳng hạn như video từ nhà cung cấp video trực tuyến, hệ thống nhận xét như Disqus, bản đồ từ trực tuyến . Các ví dụ trực tiếp có thể chỉnh sửa mà bạn đã sử dụng trong suốt khóa học này được triển khai bằng cách sử dụng

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7s

Có một số mối lo ngại nghiêm trọng về Bảo mật cần xem xét với

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7, như chúng tôi sẽ thảo luận bên dưới, nhưng điều này không có nghĩa là bạn không nên sử dụng chúng trong trang web của mình — nó chỉ cần một số kiến ​​thức và suy nghĩ cẩn thận. Hãy khám phá mã chi tiết hơn một chút. Giả sử bạn muốn đưa bảng thuật ngữ MDN vào một trong các trang web của mình — bạn có thể thử một cái gì đó như thế này


  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

Ví dụ này bao gồm các yếu tố cơ bản cần thiết để sử dụng một

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7

const textarea = document.getElementById['code'];
const reset = document.getElementById['reset'];
const solution = document.getElementById['solution'];
const output = document.querySelector['.output'];
let code = textarea.value;
let userEntry = textarea.value;

function updateCode[] {
  output.innerHTML = textarea.value;
}

reset.addEventListener['click', function[] {
  textarea.value = code;
  userEntry = textarea.value;
  solutionEntry = htmlSolution;
  solution.value = 'Show solution';
  updateCode[];
}];

solution.addEventListener['click', function[] {
  if [solution.value === 'Show solution'] {
    textarea.value = solutionEntry;
    solution.value = 'Hide solution';
  } else {
    textarea.value = userEntry;
    solution.value = 'Show solution';
  }
  updateCode[];
}];

const htmlSolution = '\n\n\n\n';
let solutionEntry = htmlSolution;

textarea.addEventListener['input', updateCode];
window.addEventListener['load', updateCode];

// stop tab key tabbing out of textarea and
// make it write a tab at the caret position instead

textarea.onkeydown = function[e]{
  if [e.keyCode === 9] {
    e.preventDefault[];
    insertAtCaret['\t'];
  }

  if [e.keyCode === 27] {
    textarea.blur[];
  }
};

function insertAtCaret[text] {
  const scrollPos = textarea.scrollTop;
  let caretPos = textarea.selectionStart;

  const front = textarea.value.substring[0, caretPos];
  const back = textarea.value.substring[textarea.selectionEnd, textarea.value.length];
  textarea.value = front + text + back;
  caretPos += text.length;
  textarea.selectionStart = caretPos;
  textarea.selectionEnd = caretPos;
  textarea.focus[];
  textarea.scrollTop = scrollPos;
}

// Update the saved userCode every time the user updates the text area code

textarea.onkeyup = function[]{
  // We only want to save the state when the user code is being shown,
  // not the solution, so that solution is not saved over the user code
  if [solution.value === 'Show solution'] {
    userEntry = textarea.value;
  } else {
    solutionEntry = textarea.value;
  }

  updateCode[];
};
5

Nếu được sử dụng,

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 sẽ được hiển thị mà không có đường viền xung quanh. Mặt khác, theo mặc định, các trình duyệt hiển thị
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 với đường viền xung quanh [thường là điều không mong muốn]

const textarea = document.getElementById['code'];
const reset = document.getElementById['reset'];
const solution = document.getElementById['solution'];
const output = document.querySelector['.output'];
let code = textarea.value;
let userEntry = textarea.value;

function updateCode[] {
  output.innerHTML = textarea.value;
}

reset.addEventListener['click', function[] {
  textarea.value = code;
  userEntry = textarea.value;
  solutionEntry = htmlSolution;
  solution.value = 'Show solution';
  updateCode[];
}];

solution.addEventListener['click', function[] {
  if [solution.value === 'Show solution'] {
    textarea.value = solutionEntry;
    solution.value = 'Hide solution';
  } else {
    textarea.value = userEntry;
    solution.value = 'Show solution';
  }
  updateCode[];
}];

const htmlSolution = '\n\n\n\n';
let solutionEntry = htmlSolution;

textarea.addEventListener['input', updateCode];
window.addEventListener['load', updateCode];

// stop tab key tabbing out of textarea and
// make it write a tab at the caret position instead

textarea.onkeydown = function[e]{
  if [e.keyCode === 9] {
    e.preventDefault[];
    insertAtCaret['\t'];
  }

  if [e.keyCode === 27] {
    textarea.blur[];
  }
};

function insertAtCaret[text] {
  const scrollPos = textarea.scrollTop;
  let caretPos = textarea.selectionStart;

  const front = textarea.value.substring[0, caretPos];
  const back = textarea.value.substring[textarea.selectionEnd, textarea.value.length];
  textarea.value = front + text + back;
  caretPos += text.length;
  textarea.selectionStart = caretPos;
  textarea.selectionEnd = caretPos;
  textarea.focus[];
  textarea.scrollTop = scrollPos;
}

// Update the saved userCode every time the user updates the text area code

textarea.onkeyup = function[]{
  // We only want to save the state when the user code is being shown,
  // not the solution, so that solution is not saved over the user code
  if [solution.value === 'Show solution'] {
    userEntry = textarea.value;
  } else {
    solutionEntry = textarea.value;
  }

  updateCode[];
};
8

Nếu được đặt, thì có thể đặt

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 ở chế độ toàn màn hình bằng cách sử dụng API toàn màn hình [hơi nằm ngoài phạm vi của bài viết này. ]


  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

0

Thuộc tính này, như với

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
6/
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7, chứa một đường dẫn trỏ đến URL của tài liệu sẽ được nhúng


  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

3 và

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

4

Các thuộc tính này chỉ định chiều rộng và chiều cao mà bạn muốn iframe

Nội dung dự phòng

Cũng giống như các yếu tố tương tự khác như

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
6, bạn có thể bao gồm nội dung dự phòng giữa thẻ mở và thẻ đóng

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

6 sẽ xuất hiện nếu trình duyệt không hỗ trợ
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7. Trong trường hợp này, chúng tôi đã bao gồm một liên kết đến trang thay thế. Không chắc là bạn sẽ bắt gặp bất kỳ trình duyệt nào không hỗ trợ
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 trong những ngày này


  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

9

Thuộc tính này hoạt động trong các trình duyệt hiện đại hơn một chút so với các tính năng còn lại của

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 [e. g. IE 10 trở lên] yêu cầu cài đặt bảo mật nâng cao;

Ghi chú. Để cải thiện tốc độ, bạn nên đặt thuộc tính


  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

0 của iframe bằng JavaScript sau khi tải xong nội dung chính. Điều này làm cho trang của bạn có thể sử dụng được sớm hơn và giảm thời gian tải trang chính thức của bạn [một số liệu SEO quan trọng. ]

mối quan tâm an ninh

Ở trên, chúng tôi đã đề cập đến những lo ngại về bảo mật - bây giờ chúng ta hãy đi vào vấn đề này chi tiết hơn một chút. Chúng tôi không mong đợi bạn hiểu hoàn toàn tất cả nội dung này ngay lần đầu tiên; . Ngoài ra, không cần phải sợ hãi và không sử dụng

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 — bạn chỉ cần cẩn thận. Đọc tiếp…

Các nhà sản xuất trình duyệt và nhà phát triển Web đã học được một cách khó khăn rằng iframe là mục tiêu phổ biến [thuật ngữ chính thức. véc tơ tấn công] để những người xấu trên Web [thường được gọi là tin tặc hoặc chính xác hơn là kẻ bẻ khóa] tấn công nếu họ đang cố sửa đổi trang web của bạn theo cách ác ý hoặc lừa mọi người làm điều gì đó mà họ không muốn làm, chẳng hạn như tiết lộ nội dung nhạy cảm . Do đó, các kỹ sư thông số kỹ thuật và nhà phát triển trình duyệt đã phát triển nhiều cơ chế bảo mật khác nhau để làm cho

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 an toàn hơn và cũng có những phương pháp hay nhất để xem xét — chúng tôi sẽ đề cập đến một số phương pháp này bên dưới

Ghi chú. Clickjacking là một kiểu tấn công iframe phổ biến trong đó tin tặc nhúng một iframe vô hình vào tài liệu của bạn [hoặc nhúng tài liệu của bạn vào trang web độc hại của riêng chúng] và sử dụng nó để thu thập các tương tác của người dùng. Đây là cách phổ biến để đánh lừa người dùng hoặc đánh cắp dữ liệu nhạy cảm

Tuy nhiên, một ví dụ nhanh trước tiên — hãy thử tải ví dụ trước mà chúng tôi đã trình bày ở trên vào trình duyệt của bạn — bạn có thể tìm thấy nó trực tiếp trên GitHub [cũng xem mã nguồn. ] Thay vì trang bạn mong đợi, có thể bạn sẽ thấy một số loại thông báo có nội dung "Tôi không thể mở trang này" và nếu bạn xem Bảng điều khiển trong các công cụ dành cho nhà phát triển trình duyệt, bạn sẽ thấy một thông báo . Trong Firefox, bạn sẽ nhận được thông báo giống như Đang tải "https. // nhà phát triển. mozilla. org/en-US/docs/Glossary" trong một khung bị từ chối bởi lệnh "X-Frame-Options" được đặt thành "DENY". Điều này là do các nhà phát triển xây dựng MDN đã bao gồm một cài đặt trên máy chủ phục vụ các trang web để không cho phép chúng được nhúng bên trong các

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 [xem Định cấu hình chỉ thị CSP, bên dưới. ] Điều này hợp lý — toàn bộ trang MDN không thực sự hợp lý khi được nhúng vào các trang khác trừ khi bạn muốn thực hiện điều gì đó như nhúng chúng vào trang web của mình và xác nhận chúng là của riêng bạn — hoặc cố gắng đánh cắp dữ liệu thông qua clickjacking, đó là . Ngoài ra, nếu mọi người bắt đầu làm điều này, tất cả băng thông bổ sung sẽ bắt đầu tiêu tốn của Mozilla rất nhiều tiền

Chỉ nhúng khi cần thiết

Đôi khi, việc nhúng nội dung của bên thứ ba — như video trên youtube và bản đồ — nhưng bạn có thể đỡ phải đau đầu hơn nếu chỉ nhúng nội dung của bên thứ ba khi thực sự cần thiết. Một nguyên tắc tốt cho bảo mật web là "Bạn không bao giờ có thể quá thận trọng. Nếu bạn đã thực hiện nó, hãy kiểm tra lại nó. Nếu ai đó đã làm nó, hãy cho rằng nó nguy hiểm cho đến khi được chứng minh ngược lại. "

Bên cạnh bảo mật, bạn cũng nên lưu ý vấn đề sở hữu trí tuệ. Hầu hết nội dung đều có bản quyền, ngoại tuyến và trực tuyến, kể cả nội dung bạn có thể không mong đợi [ví dụ: hầu hết hình ảnh trên Wikimedia Commons]. Không bao giờ hiển thị nội dung trên trang web của bạn trừ khi bạn sở hữu nội dung đó hoặc chủ sở hữu đã cấp cho bạn sự cho phép rõ ràng bằng văn bản. Hình phạt cho hành vi vi phạm bản quyền là nghiêm trọng. Một lần nữa, bạn không bao giờ có thể quá thận trọng

Nếu nội dung được cấp phép, bạn phải tuân thủ các điều khoản cấp phép. Ví dụ: nội dung trên MDN được cấp phép theo CC-BY-SA. Điều đó có nghĩa là bạn phải ghi có cho chúng tôi khi bạn trích dẫn nội dung của chúng tôi, ngay cả khi bạn thực hiện những thay đổi đáng kể

Sử dụng HTTPS

HTTPS là phiên bản được mã hóa của HTTP. Bạn nên phục vụ các trang web của mình bằng HTTPS bất cứ khi nào có thể

  1. HTTPS giảm khả năng nội dung từ xa bị giả mạo trong quá trình chuyển tiếp,
  2. HTTPS ngăn nội dung được nhúng truy cập vào nội dung trong tài liệu gốc của bạn và ngược lại

Kích hoạt HTTPS trang web của bạn yêu cầu cài đặt chứng chỉ bảo mật đặc biệt. Nhiều nhà cung cấp dịch vụ lưu trữ cung cấp dịch vụ lưu trữ hỗ trợ HTTPS mà bạn không cần phải tự thực hiện bất kỳ thiết lập nào để đặt chứng chỉ tại chỗ. Nhưng nếu bạn cần tự thiết lập hỗ trợ HTTPS cho trang web của mình, Let's Encrypt cung cấp các công cụ và hướng dẫn mà bạn có thể sử dụng để tự động tạo và cài đặt chứng chỉ cần thiết — với sự hỗ trợ tích hợp sẵn dành cho các máy chủ web được sử dụng rộng rãi nhất, bao gồm . Công cụ Let's Encrypt được thiết kế để làm cho quy trình trở nên dễ dàng nhất có thể, vì vậy thực sự không có lý do chính đáng nào để tránh sử dụng nó hoặc các phương tiện có sẵn khác để hỗ trợ HTTPS cho trang web của bạn

Ghi chú. Các trang GitHub cho phép nội dung được cung cấp qua HTTPS theo mặc định, vì vậy nó rất hữu ích cho việc lưu trữ nội dung. Nếu bạn đang sử dụng một nhà cung cấp dịch vụ lưu trữ khác và không chắc chắn, hãy hỏi họ về điều đó

Luôn sử dụng thuộc tính

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

9

Bạn muốn cung cấp cho những kẻ tấn công ít quyền nhất có thể để thực hiện những điều xấu trên trang web của mình, do đó, bạn chỉ nên cấp cho nội dung được nhúng các quyền cần thiết để thực hiện công việc của nó. Tất nhiên, điều này cũng áp dụng cho nội dung của riêng bạn. Một thùng chứa mã mà nó có thể được sử dụng một cách thích hợp — hoặc để thử nghiệm — nhưng không thể gây ra bất kỳ tác hại nào đối với phần còn lại của cơ sở mã [dù vô tình hay độc hại] được gọi là sandbox

Nội dung không có hộp cát có thể làm quá nhiều việc [thực thi JavaScript, gửi biểu mẫu, cửa sổ bật lên, v.v. ] Theo mặc định, bạn nên áp đặt tất cả các hạn chế có sẵn bằng cách sử dụng thuộc tính


  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

9 không có tham số, như trong ví dụ trước của chúng tôi

Nếu thực sự cần thiết, bạn có thể thêm lại từng quyền một [bên trong giá trị thuộc tính

38] — xem mục nhập tham chiếu

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

9 để biết tất cả các tùy chọn khả dụng. Một lưu ý quan trọng là bạn không bao giờ được thêm cả
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
70 và
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
71 vào thuộc tính

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

9 của mình — trong trường hợp đó, nội dung được nhúng có thể bỏ qua chính sách Cùng nguồn gốc ngăn các trang web thực thi tập lệnh và sử dụng JavaScript để tắt hoàn toàn hộp cát

Ghi chú. Hộp cát không bảo vệ nếu kẻ tấn công có thể đánh lừa mọi người truy cập trực tiếp vào nội dung độc hại [bên ngoài

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
73]. Nếu có bất kỳ khả năng nội dung nào đó có thể độc hại [e. g. , nội dung do người dùng tạo], vui lòng phân phối nội dung đó từ một miền khác đến trang web chính của bạn

Định cấu hình chỉ thị CSP

CSP là viết tắt của chính sách bảo mật nội dung và cung cấp một bộ Tiêu đề HTTP [siêu dữ liệu được gửi cùng với các trang web của bạn khi chúng được cung cấp từ máy chủ web] được thiết kế để cải thiện tính bảo mật cho tài liệu HTML của bạn. Khi cần bảo mật các

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7, bạn có thể định cấu hình máy chủ của mình để gửi tiêu đề
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
75 thích hợp. Điều này có thể ngăn các trang web khác nhúng nội dung của bạn vào trang web của họ [điều này sẽ kích hoạt clickjacking và một loạt các cuộc tấn công khác], đây chính là điều mà các nhà phát triển MDN đã thực hiện, như chúng ta đã thấy trước đó trên

Ghi chú. Bạn có thể đọc bài đăng của Frederik Braun Trên tiêu đề bảo mật tùy chọn khung X để biết thêm thông tin cơ bản về chủ đề này. Rõ ràng, nó nằm ngoài phạm vi giải thích đầy đủ trong bài viết này

The and elements

Các phần tử

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
8 và
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
9 phục vụ một chức năng khác với
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7 — những phần tử này là các công cụ nhúng có mục đích chung để nhúng nội dung bên ngoài, chẳng hạn như PDF

Tuy nhiên, bạn không có khả năng sử dụng các yếu tố này nhiều. Nếu bạn cần hiển thị các tệp PDF, tốt hơn hết là liên kết với chúng thay vì nhúng chúng vào trang

Trong lịch sử, các yếu tố này cũng đã được sử dụng để nhúng nội dung được xử lý bởi các plugin trình duyệt như Adobe Flash, nhưng công nghệ này hiện đã lỗi thời và không được hỗ trợ bởi các trình duyệt hiện đại

Nếu bạn thấy mình cần nhúng nội dung phần bổ trợ, thì đây là loại thông tin tối thiểu bạn sẽ cần

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
8
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
9URL của nội dung được nhúng

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

0
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
82loại phương tiện chính xác của nội dung được nhúng
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
83
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
83chiều cao và chiều rộng [tính bằng pixel CSS] của hộp do plugin điều khiển

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

4

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

3

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

4

  
    iframe {
      border: none;
    }
  


  
    
      
        Fallback link for browsers that don't support iframes
      
    
  

3tên

Hãy xem một ví dụ về

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
9 nhúng tệp PDF vào một trang [xem ví dụ trực tiếp và mã nguồn]

3

Các tệp PDF là bước đệm cần thiết giữa giấy và kỹ thuật số, nhưng chúng đặt ra nhiều thách thức về khả năng tiếp cận và có thể khó đọc trên màn hình nhỏ. Chúng vẫn có xu hướng phổ biến trong một số vòng kết nối, nhưng tốt hơn hết là liên kết với chúng để có thể tải xuống hoặc đọc chúng trên một trang riêng biệt, thay vì nhúng chúng vào một trang web

Kiểm tra kỹ năng của bạn

Bạn đã đọc đến cuối bài viết này, nhưng liệu bạn có nhớ được thông tin quan trọng nhất không? . Đa phương tiện và nhúng

Bản tóm tắt

Chủ đề nhúng nội dung khác vào tài liệu web có thể nhanh chóng trở nên rất phức tạp, vì vậy trong bài viết này, chúng tôi đã cố gắng giới thiệu nó theo cách đơn giản, quen thuộc mà sẽ có vẻ phù hợp ngay lập tức, đồng thời gợi ý về một số tính năng nâng cao hơn của . Để bắt đầu, bạn không thể sử dụng tính năng nhúng cho nhiều mục đích khác ngoài việc bao gồm nội dung của bên thứ ba như bản đồ và video trên các trang của bạn. Tuy nhiên, khi bạn trở nên có kinh nghiệm hơn, bạn có thể bắt đầu tìm thấy nhiều cách sử dụng hơn cho chúng.

Có nhiều công nghệ khác liên quan đến việc nhúng nội dung bên ngoài bên cạnh những công nghệ chúng ta đã thảo luận ở đây. Chúng tôi đã thấy một số trong các bài viết trước, chẳng hạn như

html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
6,
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
96 và
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
7, nhưng có những thứ khác cần khám phá, chẳng hạn như
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
5 cho đồ họa 2D và 3D do JavaScript tạo và
html {
  font-family: sans-serif;
}

h2 {
  font-size: 16px;
}

.a11y-label {
  margin: 0;
  text-align: right;
  font-size: 0.7rem;
  width: 98%;
}

body {
  margin: 10px;
  background: #f5f9fa;
}
99 cho đồ họa vector nhúng. Chúng ta sẽ xem xét SVG trong bài viết tiếp theo của mô-đun

Bạn có thể nhúng HTML vào JavaScript không?

Sử dụng thuộc tính InternalHTML . Để nối thêm bằng thuộc tính InternalHTML, trước tiên hãy chọn phần tử [div] nơi bạn muốn nối thêm mã. Sau đó, thêm mã được đính kèm dưới dạng chuỗi bằng toán tử += trên InternalHTML.

JS nhúng là gì?

Nhúng qua JavaScript. Iframely lưu trữ nội dung nhúng. js Thư viện JavaScript hoạt động trong dàn phối với iFrame được lưu trữ cho nội dung đa phương tiện của bên thứ ba và tương tác với Iframely . Chúng tôi bao gồm nhúng. js theo mặc định là

Thẻ HTML nào được sử dụng để nhúng mã JavaScript?

Thẻ được sử dụng để nhúng tập lệnh phía máy khách [JavaScript]. Phần tử

Chủ Đề