【问题标题】:Loading external page into my web page change the layout将外部页面加载到我的网页中会更改布局
【发布时间】:2018-01-16 19:36:47
【问题描述】:

我有一个 C# MVC Web 应用程序(应用程序 A),我想从另一个应用程序加载一个网页 (P1)。我通过 REST api 调用获得了页面 P1、详细信息和内容。 当我将 P1 页面加载到我的 A1 中时,它会与我的 CSS 和 JS 混淆,并使用 P1 从其余调用中获得的一个覆盖 A1 CSS/JS。

如何确保 P1 不会覆盖我的页面 A1 的 CSS/JS?

【问题讨论】:

    标签: c# css asp.net-mvc zurb-foundation-5


    【解决方案1】:

    我做类似的方法。我基本上取另一个应用程序的页面并提取 body 元素并嵌入它。使用这种方法,包含的应用程序的 css 不会被加载

    这是我如何做的示例代码:

    function loadApp(url) {
        // fetch P1 page via jQuery
        $.get(url, function (data) {
            var page = $(data);
    
            // in the app I have a div with id "frame" where P1 should be loaded into
            $('#frame').html("");
            // in P1 I have a div with id "content" which should be included
            // all CSS and JS are outside
            page.find('#content').appendTo('#frame');
    
            // rewrite relative urls
            $('#frame').find('img').each(function (i) {
                var src = $(this).attr('src');
                if (!src.toLowerCase().startsWith('http://')) {
                    $(this).attr('src', url + '/' + src);
                }
            });
        }, 'html');
    }
    

    【讨论】:

    • 这不是答案。它甚至不应该是评论,因为没有必要确认问题。
    • 好的。让我补充一下:你必须使用例如jQuery 从获取的页面中提取 body 元素并将其包含在您的应用程序页面中。由于 css 通常是从 head 元素引用的,所以没有加载
    • @L.Guthardt,这是一个答案。再读一遍:)
    • 那样我必须写我的方式来显示页面?这不是我想做的。
    • 我相信您是说要获取 P1 的内容并仅提取 html 并丢弃 CSS/JS 等其他内容,如果我这样做,我会失去其他页面 P1 的外观。
    猜你喜欢
    • 2013-08-11
    • 2011-12-30
    • 1970-01-01
    • 2012-02-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 2011-05-16
    相关资源
    最近更新 更多