Ví dụ,
var newElement = document.createElement['div'];
newElement.innerHTML = "new content
alert['Hello World!']";
element.appendChild[newElement];
Kết quả: "Nội dung mới" được thêm vào trong trang nhưng sẽ không có cảnh giác nào nói Hello World!
Tôi đã thử InsideHtml, InsertAdjacenthtml, Phụ lục, Phương pháp phụ lục. Nhưng vấn đề là JS và CSS không tải động.
Trong jQuery, after[]
hoạt động 👍🏻
$[selector].after["new content
alert['Hello World!']"];
Có bất kỳ tương đương cho JavaScript thuần túy?
Ông Polywhirl
36.6K12 Huy hiệu vàng76 Huy hiệu bạc124 Huy hiệu đồng12 gold badges76 silver badges124 bronze badges
Hỏi ngày 11 tháng 4 lúc 16:27Apr 11 at 16:27
Bạn có thể sử dụng eval
để thực thi các tập lệnh của mình dưới các định dạng chuỗi. JQuery cũng sử dụng eval
trong một số phần của thao tác DOM dưới mui xe.
const content = "new contentalert['Hello World!']";
const newElement = document.createElement['div'];
newElement.innerHTML = content
const scriptRegex = /[? {
const el = document.createElement['div'];
el.innerHTML = domHTML;
document.body.appendChild[el];
document.body.append[document.createRange[].createContextualFragment[scriptHTML]];
};
const domHTML = `
new content`;
const scriptHTML = `
alert['Hello World!'];
`;
insertHTML[domHTML, scriptHTML];
Logic này đã được mượn từ câu trả lời của Tilak Maddy trong một câu hỏi liên quan.
Đã trả lời ngày 11 tháng 4 lúc 16:51Apr 11 at 16:51
Ông Polywhirlmr. PolywhirlMr. Polywhirl
36.6K12 Huy hiệu vàng76 Huy hiệu bạc124 Huy hiệu đồng12 gold badges76 silver badges124 bronze badges
Hỏi ngày 11 tháng 4 lúc 16:27
- Bạn có thể sử dụng
eval
để thực thi các tập lệnh của mình dưới các định dạng chuỗi. JQuery cũng sử dụngeval
trong một số phần của thao tác DOM dưới mui xe. - Lưu ý bên, đối với trường hợp của bạn, không có cách nào được gọi là an toàn để chuyển đổi các chuỗi thành tập lệnh vì ai đó có thể đưa các tập lệnh độc hại vào chuỗi của bạn và thực hiện chúng mà không cần thông báo của bạn, vì vậy bạn cần đảm bảo tất cả các chuỗi của bạn nằm dưới sự kiểm soát của bạn. Bạn có thể kiểm tra tấn công XSS để hiểu rõ hơn.
- Đã trả lời ngày 11 tháng 4 lúc 16:53
Nick Vunick Vu
var script = document.createElement['script'];
script.src = 'some url'; // use this for external scripts
script.innerHTML = 'your script'; // use this for writing your own script content
document.getElementsByTagName['head'][0].appendChild[script];
marc_s
11.9k2 Huy hiệu vàng17 Huy hiệu bạc27 Huy hiệu đồng171 gold badges1315 silver badges1433 bronze badges
Nếu bạn chắc chắn về nội dung
$[selector].after["new content
alert['Hello World!']"];
1 là $[selector].after["new content
alert['Hello World!']"];
2 và chứa một chuỗi có HTML hợp lệ, bạn có thể sử dụng phạm vi.CreateContextualFragment [] [thực thi các tập lệnh 🚨]Apr 11 at 16:49