【发布时间】:2014-01-18 09:07:30
【问题描述】:
我不确定这是否可行,但基本上我正在实时预览输入到 textarea 中的 html 和 css 并将其显示在 div 中 (#previewStyle)。我通过 javascript/jquery 使用 .keyup 显示这个
$(function(){
$(".updatepreview").keyup(function(){
$.post( "<?php echo http() . $websitedomain .'/.../.../styles.php'; ?>", $("#styles_form").serialize(), function(result_data){ $("#previewStyle").html(result_data); /* use result data here */ } );
});
这是问题所在:当它加载 css 时,它会更新页面上的所有内容(甚至在 div 之外)。有什么方法可以使用 jquery 将其限制为仅 div 吗?如有必要,我可以进入并更改 div 之外所有内容的所有 id 和类,以确保没有冲突;但是,想先在这里查看解决方案。一个 textarea 包含 css,一个包含 html,它将它们序列化并通过以下方式加载它们:
<?php echo "
<html>
<head>
<style> ".$_POST['style']."</style>
</head>
<body>".$_POST['html']."</body>
</html>";
?>
更新:
预览 div 确实显示正确;但是,预览 div 内部的 css 会更新并覆盖预览 div 外部的 css。我正在尝试确定是否有办法将预览 div 中的 css 限制为仅预览 div,而不是让它覆盖预览 div 周围页面的主样式表。
【问题讨论】:
-
使用 iframe 将所有内容与主文档分开。例如,jsfiddle 就是这样做的。
-
我会试试的。如果它工作/不能正常工作,我会在这里发布。
-
但是有没有其他方法可以用 div 做到这一点?只是好奇。如果可能的话,我更喜欢使用 div 而不是 iframe。
-
您可以将所有 CSS 选择器更改为以
#divid开头,因此效果将仅限于该 DIV。
标签: javascript jquery html css