如何删除Power BI发布的仪表板中的底部栏

问题描述 投票:0回答:2

问题:

我创建了一个 Power Bi 仪表板并发布到网络,然后将其嵌入到反应应用程序中。但在发布仪表板中,有一个如图所示的底部栏。所以它也将出现在嵌入式网页中。所以我想知道有没有办法去除它。谢谢

powerbi
2个回答
1
投票

另一种方法是使用反向代理,您可以通过一些样式来隐藏该栏。我已经通过 Cloudflare Workers 成功实现了这一目标。

此方法的另一个好处是您可以从自己的自定义域中显示仪表板。

您将需要一个 Cloudflare 帐户,您可以在其中使用以下脚本配置工作人员。 如果您将 Cloudflare 设置为您的名称服务器,那么您可以使用您的域名在工作线程上进行自定义重定向。

const upstream = 'app.powerbi.com'
const upstream_path = '/'

// Whether to use HTTPS protocol for upstream address.
const https = true

// Whether to disable cache.
const disable_cache = true

addEventListener('fetch', event => {
    event.respondWith(fetchAndApply(event.request));
})

class RemoveElement {
element(element) {
    element.append(`
<style>
.embeddedLandingRootContentLogoVisible { height: 100% }
.logoBarWrapper { display: none }
</style>
`, { html: Boolean })
    console.log(`Incoming element: ${element.tagName}`)
}
}

async function fetchAndApply(request) {

    const region = request.headers.get('cf-ipcountry').toUpperCase();
    const ip_address = request.headers.get('cf-connecting-ip');
    const user_agent = request.headers.get('user-agent');

    let response = null;
    let url = new URL(request.url);
    let url_hostname = url.hostname;

    if (https == true) {
        url.protocol = 'https:';
    } else {
        url.protocol = 'http:';
    }
    var upstream_domain = upstream;

    url.host = upstream_domain;
    if (url.pathname == '/') {
        url.pathname = upstream_path;
    } else {
        url.pathname = upstream_path + url.pathname;
    }


        let method = request.method;
        let request_headers = request.headers;
        let new_request_headers = new Headers(request_headers);

        new_request_headers.set('Host', upstream_domain);
        new_request_headers.set('Referer', url.protocol + '//' + url_hostname);

        let original_response = await fetch(url.href, {
            method: method,
            headers: new_request_headers
        })

        response = new Response(original_response.body, original_response)
        let original_text = null;
        let response_headers = original_response.headers;
        let new_response_headers = new Headers(response_headers);
        let status = original_response.status;

        if (disable_cache) {
            new_response_headers.set('Cache-Control', 'no-store');
        }

        new_response_headers.set('access-control-allow-origin', '*');
        new_response_headers.set('access-control-allow-credentials', true);
        new_response_headers.delete('content-security-policy');
        new_response_headers.delete('content-security-policy-report-only');
        new_response_headers.delete('clear-site-data');

        if (new_response_headers.get("x-pjax-url")) {
            new_response_headers.set("x-pjax-url", response_headers.get("x-pjax-url").replace("//" + upstream_domain, "//" + url_hostname));
        }

        return new HTMLRewriter().on('body', new RemoveElement()).transform(response);
}

新报告的嵌入 URL 将是您的自定义域 + 报告原始嵌入 URL 中的查询字符串。这是我的一项配置的示例。 https://powernote.xyz/view?r=eyJrIjoiYzQ3NmI0YjktZjE1NS00MWVlLTg1MmItYWJhNGIwMjMyZWM wIiwidCI6IjI4MGFiNDc5LTJhMzYtNDIwNS04MjBlLWUxMWYyZDhiZDA4ZCJ9&pageName=ReportSection


0
投票

我没有找到任何好的解决方案,直到我偶然发现了这个。使用嵌入链接,只需将其扔到末尾,它就会为您提供一份缺少整个底部栏的报告,并给您一个漂亮干净的外观:

&navContentPaneEnabled=假

© www.soinside.com 2019 - 2024. All rights reserved.