【发布时间】:2016-05-01 10:55:38
【问题描述】:
1) 我有 2 个不同的域 i) www.xxx.xom ii) www.yyy.com
2) 然后通过 ajax 将服务器调用从 xxx 页面发送到 yyy 页面
3) 获取 yyy 到 xxx 页面的 html 内容(内容包含带有内联 css 的 html 数据)
4) 现在我想将响应(html 内容)附加到我的 DOM 但没有 css 冲突(这意味着响应内容不受父 css 影响)
注意:没有 IFRAME 是否可以渲染
示例代码:
document.onreadystatechange = function () {
if (document.readyState == "interactive") {
var ajax_response = "<div style='color: blue;'>I m blue </div>"; // sample server reponse
document.getElementById("child").innerHTML = ajax_response;
}
}
#parent div {
color: red !important;
}
<div id="parent">
<div>I m red</div>
<div id="child"></div>
<div>I m red too</div>
</div>
输出:红色将应用于“我是蓝色”文本(因为有 '!important' 标签)
【问题讨论】:
-
欢迎来到 Stack Overflow。因此,您希望添加的 HTML 和内联样式不受要添加到的页面样式的影响?我认为应该使用
!important。 -
没有“开箱即用”的解决方案。您必须根据周围容器作为选择器前缀手动重置包含的 html 的所有不需要的样式。
-
感谢您的评论。但是这里我们不能为内联 css 添加 !important (因为最终用户提供的数据
-
@Twisty 请查看示例代码。
标签: javascript jquery html css ajax