2

我刚刚加入了一个使用 sap netweaver 生成网站的项目。

到目前为止,人们一直在单独开发他们的 DCP,因此我现在有 20 个 DCP 可以连接在一起并设计风格。

从根本上讲,每个 DCP 都是一个 IView/IFrame。

我们目前有 20 个 css 文件,难以维护和快速更改,因此我希望使用 scss 生成 1 个 css 文件以使一切正常。

那部分工作正常,但是我遇到了一个问题,因为每个 IFrame 都会呈现自己,每个 IFrame 都会加载一个 css 文件,所以我会收到 20 次对我的新 css 文件的调用。

有没有办法在父视图和 IFrame 之间共享 css 文件,或者至少设置它以便 css 文件下载一次,而其他 19 个只使用缓存版本?

干杯

杰森

4

1 回答 1

1
<script type="text/javascript">
  $(document).ready(function() {
  //pulling all <style></style> css of parent document
  if (parent) {
        var oHead = document.getElementsByTagName("head")[0];
        var arrStyleSheets = parent.document.getElementsByTagName("style");
        for (var i = 0; i < arrStyleSheets.length; i++)
            oHead.appendChild(arrStyleSheets[i].cloneNode(true));
    }
 //pulling all external style css(<link href="css.css">) of parent document
    $("link[rel=stylesheet]",parent.document).each(function(){
        var cssLink = document.createElement("link")
        cssLink.href = "http://"+parent.document.domain+$(this).attr("href");
        cssLink .rel = "stylesheet";
        cssLink .type = "text/css";
        document.body.appendChild(cssLink);
    });   
  });
</script>

它将能够继承外部样式表中定义的css以及父文档标签中定义的css。

于 2012-05-24T18:53:38.470 回答