Tôi đang tạo một trang nơi bạn có thể nhập HTML và xem kết quả đầu ra trong một div sang một bên.
Code:Nhập HTML ảnh hưởng đến toàn bộ trang
$("#tryit").keyup(function() {
var input = $(this).val();
$("#readout").html(input);
});
#readout {
height: 400px;
width: 48%;
border: 1px solid black;
overflow: auto;
float: right;
clear: none;
display: inline-block;
}
#tryit {
height: 396px;
width: 50%;
float: left;
clear: none;
display: inline-block;
font-family: monospace;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="tryit" id="tryit" rows="10"><!doctype html> <html> <head> <title>New Webpage</title> </head> <body> </body> </html>
</textarea>
<div id="readout"></div>
Nó hoạt động như bình thường: nó kết quả đầu ra HTML cho #readout
. Điều gì xảy ra là khi người dùng thêm thẻ <style>
vào số head
. Sau đó, kiểu được thêm vào sẽ không chỉ ảnh hưởng đến HTML trong kiểu nhập văn bản mà còn ảnh hưởng đến toàn bộ trang.
Tôi làm cách nào để CSS chỉ ảnh hưởng đến dữ liệu nhập của người dùng chứ không phải toàn bộ trang?
Đây là Problem Page.
Làm cách nào để thêm nội dung nào đó vào '
'? Kịch bản của bạn đặt mọi thứ trong 'readout' DIV. – BarmarNhìn vào trang. Hãy thử thêm một thẻ kiểu trong đầu và gây rối với phần đệm của cơ thể. Nó sẽ ảnh hưởng đến padding của trang thực tế, không ảnh hưởng đến readout. – TricksfortheWeb
Giải pháp thực sự là làm như jsfiddle và codepen làm: đặt mã của người dùng vào iframe để nó không ảnh hưởng đến trang chính. – Barmar